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