Linux mini-HOWTO

         

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:



Apache+DSO+mod_ssl+mod_perl+php+mod_auth_nds+mod_auth_mysql+mod_fastcgi


Ray Van Dolson
rayvd@firetail.org


Перевод: Александр Ермолаев, ASPLinux

Здесь описывается инсталляция и настройка веб-сервера Apache для работы с DSO, а также сборка и установка различных модулей, включая mod_perl, mod_ssl и php.



Дополнительно


Все упомянутое в этом документе будет в конечном счете доступно с ftp ftp.wwc.edu/pub/apache. Я буду размещать там этот текст и кое-какие инсталляционные скрипты, позволяющие установить все разом.



История создания документа




v0.91 (5 апреля 2000)

Обновление mod_fastcgi для последней версии.

v0.9 (4 апреля 2000)

Первый окончательный проект

Исправление орфографических и граматических ошибок

v0.1 (март 2000)

Начальный проект



Контактная информация


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

Ray Van Dolson Email: rayvd@firetail.org>

IRC: DALnet, #Bludgeon (nick Variant)



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 для описания его использования.



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_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

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



MySQL


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

./configure make make install

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



Описание компонентов


Платформа, на которой был установлен веб-сервер: ОС Linux Red Hat 6.1 с ядром версии 2.2.14, запущена на машине с двумя PIII 600, RAID5 и т.п.

Веб-сервер Apache 1.3.12, со следующими модулями:

mod_fastcgi SNAP (также mod_rewrite), для работы с Zope.

Auth-MySQL 2.20

mod_ssl 2.6.2 (Open-SSL 0.9.5)

mod_perl 1.21

PHP 3.0.15

mod_auth_nds 0.3a



отдельный модуль, который может быть


Мы будем компилировать 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. Процесс очень простой.


Подготовка


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

Apache 1.3.12

PHP 3.0.15

GD 1.3 (для работы с GIF файлами)

Исходные тексты

RPM

RPM-devel

GD 1.8.1 (для работы с PNG файлами)

Исходные тексты

RPM

RPM-devel

IMAP 4.5+

Исходные тексты

RPM

OpenLDAP 1.2.9+

Исходные тексты

RPM

RPM-devel

mod_perl 1.22+

Требуемые модули для Perl5

MIME::Base64

URI

HTML-Parser

Digest-MD5

libnet

libwww

mod_ssl 2.6.2+

OpenSSL 0.9.5

Исходные тексты

RPM

RPM-devel

RSAREF 2.0

MM 1.0.12

MySQL 3.22.32

mod_auth_nds 0.4

ncpfs 2.2.0.17

Примечание: ядро должно быть скомпилировано с поддержкой протокола IPX.

mod_auth_mysql 2.20

mod_fastcgi SNAP Oct06

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



В этом документе описывается процесс


В этом документе описывается процесс установки программы веб-сервера Apache и его модулей на веб-сервере Walla Walla College (www.wwc.edu). Этот документ может служить, как полезная рекомендация для выполнения установки. Он рассматривает процесс установки сервера. В частных случаях будут сделаны соответствующие комментарии, но основные шаги будут теми же.

Заключительные слова


Многое из данной информации может быть взято из файлов README и INSTALL, идущих с различными модулями. Однако, этот документ полезен в случаях, когда что-то работает не так, как ожидалось. Кроме того, последовательный документ более прост для просмотра и понимания, чем множество README файлов.