22.4. Добавление новых модулей после установки

Проблема

В конфигурации веб-сервера Apache была включена поддержка DSO (Dynamic Shared Objects), и теперь вы хотите добавить дополнительные модули, включая встроенные модули Apache и сторонние.

Решение

Допустим, вы решили добавить поддержку mod_cgi для запуска сценариев. Поскольку поддержка DSO была включена во время установки (Раздел 22.3), это можно сделать достаточно легко. Для добавления встроенных модулей Apache команда запускается с верхнего уровня дерева сборки Apache, и модуль устанавливается в каталог libexecdir, который был указан при установке:

# ./configure --prefix=/usr/lib/httpd/modules/ --enable-cgi=shared
# make install

После установки модуля добавьте следующую директиву в конфигурационный файл httpd.conf:

LoadModule cgi_module /usr/lib/httpd/modules/mod_cgi.so

Перезапустите Apache, чтобы новые изменения вступили в силу:

# apachectl restart

Добавление сторонних модулей

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

# ./configure --add-module=module_type:/path/to/mod_foo.c --enable-foo=shared
# make install

Второй способ — использование утилиты apxs (APache eXtenSion tool), которая позволяет установить сторонние модули вне дерева сборки:

# apxs -c mod_foo.c
# apxs -i -a -n foo mod_foo.la

Утилита apxs поддерживает сборку, установку и активацию модулей для Apache, что делает её идеальным инструментом для установки внешних модулей, которые требуют минимального вмешательства в структуру установки.

Особенности и проблемы при установке сторонних модулей

Несмотря на наличие стандартных инструментов, работа с сторонними модулями может вызывать сложности. Многие модули Apache содержат уникальные параметры конфигурации, которые требуют дополнительных настроек. Важно тщательно изучить документацию по каждому конкретному модулю, так как возможны зависимости, дополнительные параметры и особенности конфигурации, специфичные для каждого модуля.

Если модуль не работает, рекомендуется проверить системные логи Apache для выявления возможных ошибок. Логи можно просмотреть с помощью команды:

# tail -f /var/log/apache2/error.log

Удаление модуля

Чтобы отключить модуль, достаточно закомментировать запись LoadModule для этого модуля в файле httpd.conf и перезапустить Apache. Это обеспечит, что модуль не будет загружен при старте веб-сервера. Например:

# LoadModule cgi_module /usr/lib/httpd/modules/mod_cgi.so

После этого выполните команду для перезапуска Apache:

# apachectl restart

Комментарий

Для управления модулями Apache существует дополнительный инструмент — ApacheToolbox. ApacheToolbox предоставляет упрощённый интерфейс для загрузки, компиляции и установки модулей, включая множество популярных модулей, таких как mod_security, mod_rewrite, и mod_ssl. Этот инструмент особенно полезен для системных администраторов, которым требуется регулярное добавление новых модулей.

См. также

Раздел 22.5; http://localhost/manual/dso.html; http://localhost/manual/mod/; документация Apache 2.0 (http://httpd.apache.org/docs-2.0).