Установка компонентов

Подготовка

Вам будет нужно следующее:

Это схема каталогов, которая здесь используется и может быть вам рекомендована:

+ /usr/src
|
+-+ apache
  |
  +-+ apache-1.3.12
  |
  +-+ modules
  | |
  | +-+ mod_perl
  | | |
  | | +- mod_perl-1.21
  | | |
  | | +-+ depend
  | |   |
  | |   +- <модули для perl>
  | |
  | +-+ mod_ssl
  | | |
  | | +- mod_ssl-2.6.2-1.3.12
  | | |
  | | +-+ depend
  | |   |
  | |   +- openssl-0.9.5
  | |   |
  | |   +- rsaref-2.0
  | |   |
  | |   +- mm-1.0.12
  | |
  | +-+ mod_fastcgi_SNAP
  | |
  | +-+ php
  | | |
  | | +- php-3.0.15
  | | |
  | | +-+ depend
  | |   |
  | |   +- gd-1.3
  | |   |
  | |   +- imap-4.5
  | |   |
  | |   +- openldap-1.2.9
  | |
  | +-+ mod_auth_nds
  | | |
  | | +- mod_auth_nds-0.4
  | | |
  | | +-+ depend
  | |   |
  | |   +- ncpfs-2.2.0.17
  | |
  | +-+ mod_auth_mysql
  |
  +-+ mysql

Проверьте, все ли модули и программы установлены на вашей системе. Отсутствие некоторых компонетов не повредит, но лучше установить все. Вы можете установить и более ранние версии.

mod_ssl

Сборка и установка OpenSSL

mod_ssl требует, чтобы был установлен SSL. Естественный выбор для Linux - OpenSSL. Вы можете устанавить его из пакета RPM (как это сделал я), или скомпилировать из исходных текстов. поступайте, как хотите. Я, например, ставил готовый пакет, впрочем, компиляция из исходных текстов также достаточно проста. Наиболее вероятно, что вы установите его в каталог /usr/local, или оставите его в своем каталоге, но не забудьте указать путь приложениям, которым он необходим.

RPM установит OpenSSL в системный каталог.

Сборка и установка RSAREF 2.0

Создайте каталог для модуля rsaref-2.0 в любом месте. У меня он находится в /usr/src/apache/modules/mod_ssl-blah/depend/. Перейдите в этот каталог.

cd rsaref-2.0 cp -rp install/unix local cd local make mv rsaref librsaref.a

Эти команды должны собрать библиотеку rsaref! Оставьте все здесь и укажите в конфигурационном скрипте путь к библиотеке.

Сборка и установка MM

Распакуйте mm-1.0.12 (или более новую) в подкаталог mod_ssl-ля-ля-ля. Выполните следующие шаги:

cd mm-1.0.12 ./configure --disable-shared make

В результате должна собраться библиотека mm. Как и выше, укажите этот путь, если необходимо, или установите в системный каталог.

Сборка и установка mod_ssl (наконец-то!)

В процессе стандартной процедуры при работе с apxs сначала должен быть скомпилирован Apache, а затем используйте apxs для компиляции модулей, которые вы хотите использовать, и присоедините их к серверу. Однако, mod_ssl должен быть собран с сервером до того, как вы используете apxs. Если mod_ssl собран вместе с сервером, обновите его через apxs без полной перекомпиляции Apache.

Войдите в каталог, где Вы компилируете mod_ssl, и выполните следующую команду конфигурации для начала компиляции:

#!/bin/sh ./configure \ --with-apache=/usr/src/apache/apache_1.3.12 \ --with-ssl \ --with-rsa=../depend/rsaref-2.0/local \ --with-mm=../depend/mm-1.0.12 \ --enable-shared=ssl

Вам не нужно запускать ни 'make', ни что-то еще. Когда мы будем собирать Apache, команда сделает все за нас.

Эта команда дает два примера того, как ваша система может быть установлена. В моем случае, OpenSSL был уже установлен где-то в системе (кажется в /usr/lib или /usr/include). Поэтому я не должен был бы передавать параметры его расположения. Однако, rsa и mm не были в системе, и я собрал их сам и оставил в каталоге исходников (не запуска make вообще). В этом случае вам нужно указать команде configure на соответствующий каталог так, чтобы он нашел заголовочные файлы и библиотеки.

Идем далее, если вы не обновляете Apache (в некоторых случаях вам необходимо проделать предыдущий шаг для новой версии Apache), используйте apxs для обновления или перекомпиляции модуля mod_ssl. Вот какие параметры я дал скрипту:

./configure \ --with-apxs=/apps/apache-1.3.12/bin/apxs \ --with-ssl=../depend/openssl-0.9.4 \ --with-rsa=../depend/rsaref-2.0/local \ --with-mm=../depend/mm-1.0.12

Или команда, описанная выше. Запускаем:

make make install make distclean

и завершаем инсталляцию.

Примечания: MM не требует компиляции mod_ssl. Если у вас появились проблемы во время установки, начните с шага ./configure.

Когда я собирал mod_ssl, у меня появились ошибки, связанные с DBM. Чтобы исправить их, я добавил -lndbm в Makefile:

  • Запустите вышеупомянутый конфигурационный скрипт.

  • cd в pkg.sslmod

  • Отредактируйте makefile и добавте -lndbm к LIBS_SHLIB. Следующим образом:

  • LIBS_SHLIB=-lm -lcrypt -lndbdm

Надеюсь, это сэкономит вам немного сил.

Apache

Распакуйте архив apache-1.3.12.tar.gz в /usr/src/apache или в другое место. Затем собираем Apache со следующими модулями:

Конфигурационный файл, который я использовал для сборки Apache:

#!/bin/sh

SSL_BASE=../depend/openssl-0.9.4 \
RSA_BASE=../depend/rsaref-2.0/local \
EAPI_MM=../depend/mm-1.0.12 \
./configure \
        --enable-module=ssl \
        --enable-module=proxy\
        --enable-shared=proxy\
        --enable-module=rewrite \
        --enable-shared=rewrite \
        --prefix=/apps/apache-1.3.12 \
        --enable-shared=ssl \
        --enable-rule=SHARED_CORE \
        --enable-rule=SHARED_CHAIN \
        --enable-module=so

Затем запустим

make make certificate make install

Apache должен теперь быть собран и установлен в какой-нибудь каталог. Проверьте, что он запускается с помощью.

/path/to/apache/bin/apachectl start

или

/path/to/apache/bin/apachectl startssl

Надеюсь, все пройдет гладко. Если нет, вернитесь назад и проверьте, что вы ничего не забыли.

MySQL

php также как mod_auth_mysql и возможно mod_perl потребуют, чтобы MySQL был установлен и запущен на вашей системе. Подробности установки MySQL находятся вне контекста этого документа. Скачайте архив и следуйте рекомендациям по установке из файла(ов) INSTALL. Впрочем, это довольно простая процедура. Что-то вроде этого:

./configure make make install

Все должно установиться так, что вы сможете собирать другие модули Apache.

PHP 3.0.15

Мы будем компилировать php-3.0.15, как DSO (отдельный модуль, который может быть загружен и выгружен сервером). В результате, процесс обновления php становится более простым (без перекомпиляции всего (что может быть ужасно, если вы используете много модулей с Apache)).

GD

Наш php использует библиотеку gd для создания изображений. Я использовал старую версию gd (установленную из RPM). Таким образом, мы можем использовать вывод GIF файлов. Это не очень хорошо -, могут быть проблемы с авторскими правами, и таким образом Вы можете использовать версию более новую, чем 1.3, которая поддерживает только PNG файлы.

Чтобы установить компонент в системе, можно взять его из пакета RPM (rpm -i gd*.rpm) или собрать из исходников.

IMAP

Эта процедура похожа на установку gd. Я использовал RPM, т.к. у меня система Red Hat, но установка из исходников тоже очень проста - ./configure;make;make install.

OpenLDAP

Опять мы можем установить OpenLDAP из RPM или из исходников. Я выбрал компиляцию исходных текстов, т.к. последней версии нет в RPM.

./configure make make install

или rpm -i openldap*.rpm

Сборка и установка PHP 3.0.15

Как только вышеупомянутые компоненты установлены и работают, мы можем идти дальше и собрать PHP, как DSO. Процесс очень простой.

cd /usr/src/apache/modules/php/php-3.0.15

./configure \
        --with-apxs=/apps/apache/bin/apxs \
        --with-config-file-path=/apps/etc \
        --with-gd \
        --with-imap \
        --with-mysql=/apps/mysql \
        --with-ldap=/apps \
        --with-zlib \
        --enable-track-vars

Если некоторые из ваших библиотек не установлены в /usr/local или в /usr, то не забудьте добавить параметр =/путь/ для того, чтобы скрипт configure обнаружил все необходимые библиотеки.

make
make install

Если все проходит должным образом, то 'make install' будет использовать apxs для установки libphp3.so в /apache/libexec/libphp3.so и добавит надлежащие строки в httpd.conf, чтобы активизировать php3.

mod_perl

Этот раздел описывает установку модуля mod_perl, как DSO для Apache. Ряд модулей perl (в дополнение, конечно, к perl5, который, я думаю, вы уже установили) должны быть добавлены до компиляции mod_perl. Если вы не установите эти модули, mod_perl сообщит вам об их отсутствии.

Есть некоторый порядок, в котором модули должны быть установлены. Одни зависят от других, и таким образом я перечислю порядок установки, который использовал без всяких проблем.

Требуемые модули Perl

Perl модули могут быть получены из мест, упоминаемых далее в этом документе. Загрузите их и поместите туда, куда хотите, или туда, куда положил я (см. схему каталогов). Установка модуля проста. После распаковки модуля в каталог (обычно при помощи tar xvfz), просто перейдите в каталог с исходными текстами и выполните следующие команды:

perl Makefile.PL make make install

Если все идет нормально, происходит настройка, сборка и установка модуля perl. Конечно, вы можете прочитать README для каждого модуля, если что-то работает не так, как ожидалось.

Вот порядок, в котором я устанавливал модули, необходимые для mod_perl:

  1. MIME::Base64

  2. URI

  3. HTML::Parser

  4. Digest-MD5

  5. libnet

  6. libwww

Сборка и установка mod_perl 1.2x

После установки модулей perl, мы готовы к сборке и установке mod_perl в Apache. Перейдите в каталог, куда вы распаковали mod_perl, и запустите следующую команду:

perl Makefile.PL \ USE_APXS=1 \ WITH_APXS=/path/to/apache/bin/apxs \ EVERYTHING=1

Она настроит ваш Makefile и сообщит mod_perl, чтобы он собрал себя, как DSO, используя apxs (расположение которого вы должны определить). После этого просто запустите

make
make install

mod_perl будет перемещен в соответствующий каталог, и необходимая строка будет добавлена в файл httpd.conf.

mod_auth_mysql

mod_auth_mysql позволяет веб-серверу Apache использовать аутентификацию пользователя MySQL. Установка модуля, как DSO, не точно описана в README, но это можно поправить.

Во-первых, перейдите в каталог с исходными текстами mod_auth_mysql. Я предполагаю, что у вас уже установлен MySQL (вместе с заголовками, и т.д). Убедитесь, что Вы знаете расположение библиотек и заголовочных файлов MySQL. Если сомневаетесь, проверьте /usr/lib/mysql и /usr/include/mysql.

Чтобы собрать mod_auth_mysql, переименуйте файл 'config.h' на 'auth_mysql_config.h'. Я не знаю, почему этот файл не был правильно назван. Просто запустите следующую команду:

cp config.h auth_mysql_config.h

И последний шаг:

/path/to/apache/bin/apxs -i -a -I/usr/include/mysql -L/usr/lib/mysql \ -lmysqlclient -c mod_auth_mysql.c

Вам нужно зайти в систему, как root, для чтения/записи в каталог Apache.

mod_auth_nds

В моей школе сеть под Windows была Netware. Она существует уже долгое время, и пока это все еще основная сеть в университетском городке для доступа к общим файлам и почте. Каждый студент имеет вход на сервер Netware, на котором хранятся его личные файлы (включая веб-странички). Мы подключаем эти каталоги на сервер Linux, но некоторые из них защищены именем и паролем Netware. С этим модулем Apache может подтверждать права непосредственно на сервере Netware.

ncpfs

Чтобы компилировать mod_auth_nds, мы должны иметь установленный ncpfs (наряду с его заголовками). Перед сборкой ncpfs, вы должны гарантировать, что ваше ядро имеет поддержку IPX. Если дело обстоит так, просто выполните

./configure make make install (необязательно)

В результате соберутся (и установятся) библиотеки.

Сборка и установка mod_auth_nds

С установленным ncpfs выполнение следующей команды должно собрать mod_auth_nds как DSO:

/path/to/apache/bin/apxs -c -lncp -L/usr/lib -I/usr/include mod_auth_nds.c /path/to/apache/bin/apxs -i mod_auth_nds.so

После добавьте следующие строки в файл httpd.conf:

LoadModule nds_auth_module libexec/mod_auth_nds.so AddModule mod_auth_nds.c

И перезапустите Apache!

mod_fastcgi

Установка mod_fastcgi необходима, если Вы хотите обеспечить доступ к серверу Zope через Apache. Это полезно просто потому, что Apache является более безопасным и гибким, чем сервер Zope.

Текущая версия mod_fastcgi - 2.2.2, однако эта версия не работает с Zope, как надо. Вы должны получить SNAP от 6 октября. Ссылка дана выше.

Перейдите в каталог mod_fastcgi и запустите следующие команды:

/path/to/apache/bin/apxs -o mod_fastcgi.so -c *.c /path/to/apache/bin/apxs -i -a -n fastcgi mod_fastcgi.so

Смотрите документацию mod_fastcgi для описания его использования.