22.3. Установка Apache 2.0 по исходным текстам
Проблема
Требуется установить Apache 2.0 из исходных текстов, чтобы настроить сервер по индивидуальным требованиям. Это требует понимания параметров configure
и списка доступных модулей. Вы также хотите использовать объекты DSO (Dynamic Shared Objects), чтобы добавлять и удалять модули без перекомпиляции основного двоичного файла httpd
.
Решение
Установка Apache 2.0 выполняется в стандартной последовательности команд: configure
, make
, make install
. Из-за обширного списка параметров компиляции потребуется время на выбор необходимых функций и настроек. Также важно знать, какие значения установлены по умолчанию. В следующем примере описана типичная установка.
Для начала загрузите и распакуйте tar-архив Apache (на момент написания последней стабильной версией была версия 2.0.50). Затем создайте список всех файлов в системе:
# find / | grep -v -e /proc/ -e /tmp/ -e /dev/ > apache2-preinstall.list
После завершения установки можно создать аналогичный список файлов для сравнения с помощью команды diff
, чтобы определить, какие файлы были установлены.
Перейдите в каталог, где был распакован архив, и отобразите описание всех доступных параметров конфигурации:
# ./configure --help | less
По умолчанию все файлы размещаются в /usr/local/apache2
. В нашем примере мы используем несколько стандартных каталогов, а набор модулей будет немного изменён:
# ./configure --prefix=/etc/httpd \
--exec-prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/sbin \
--mandir=/usr/share/man \
--sysconfdir=/etc/httpd/conf \
--includedir=/usr/include/httpd \
--libexecdir=/usr/lib/httpd/modules \
--datadir=/var/www/ \
--with-mpm=prefork \
--enable-mods-shared="rewrite" \
--disable-cgi
Запустите команды make
и make install
:
# make
# make install
Создайте новый список файлов после установки:
# find / | grep -v -e /proc/ -e /tmp/ -e /dev/ > apache2-postinstall.list
После завершения установки запустите Apache:
# apachectl start
Откройте браузер и перейдите по адресу http://localhost, чтобы проверить работу сервера.
Комментарий
Если на этапе конфигурации вы не добавляете поддержку DSO, но хотите обеспечить возможность добавления модулей в будущем, добавьте следующую строку в ./configure
:
--enable-so
Это увеличит потребление дискового пространства, так как будет создано множество модулей, но в дальнейшем добавление и удаление модулей можно будет выполнять редактированием httpd.conf
и перезапуском Apache. Чтобы включить поддержку всех модулей на этапе компиляции, укажите следующий параметр:
--enable-mods-shared=all
Для Apache доступно множество модулей в формате RPM и .deb, которые можно установить отдельно. Однако здесь может возникнуть проблема: авторы пакетов могут использовать нестандартные пути для размещения файлов, что затрудняет поиск необходимых компонентов. Если у вашего дистрибутива есть документация (например, в Red Hat или SuSE), вам будет легче найти нужные файлы. В противном случае придётся потратить время на их поиск.
См. также
Глава 4; полное описание параметров конфигурации: http://httpd.apache.org/docs-2.0/programs/configure.html