Apache+DSO+mod_ssl+mod_perl+php+mod_auth_nds+mod_auth_mysql+mod_fastcgi |
---|
Пред. | | След. |
Установка компонентов
Подготовка
Вам будет нужно следующее:
Это схема каталогов, которая здесь используется и может быть вам рекомендована:
+ /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 со следующими модулями:
mod_ssl (Чтобы собрать mod_ssl как DSO, сначала компилируем с сервером. Затем обновляем модуль через apxs.)
mod_proxy
mod_so
mod_rewrite (Для использования с Zope)
Конфигурационный файл, который я использовал для сборки 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 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:
MIME::Base64
URI
HTML::Parser
Digest-MD5
libnet
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 (расположение которого вы должны определить). После этого
просто запустите
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 для описания его использования.