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).