Выяснение правильных имен модулей Apache для a2enmod
У меня есть существующий файл httpd.conf, который я должен получить для работы с экземпляром Vagrant под управлением Ubuntu, который я использую Puppet для подготовки.
Проблема, с которой я сталкиваюсь, связана с именами модулей. httpd.conf определяет несколько таких модулей:
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
Чтобы настроить все эти модули, мне нужно сообщить модулю Puppet Apache, который я использую (по примеру 42), какие имена модулей я хочу установить и включить. Проблема в том, что имена модулей не соответствуют 1:1 со строками httpd.conf. Другими словами, имена модулей не всегда могут быть выведены из файла.
Например, вот я, пытаюсь включить первую строку в файле (mod_access_compat.so
):
vagrant@lucid64:~$ sudo a2enmod access_compat
ERROR: Module access_compat does not exist!
vagrant@lucid64:~$ sudo a2enmod access_compat_module
ERROR: Module access_compat_module does not exist!
vagrant@lucid64:~$ sudo a2enmod accesscompat
ERROR: Module accesscompat does not exist!
tl; dr: Как узнать правильное имя модуля для a2enmod
не пытаясь угадать?
3 ответа
Если модуль, который вы ищете, является переменной, вы можете искать его имя внутри /etc/apache2/mods-available/
использование find
команда для поиска файла с той частью строки, которую вы знаете о моде,
например find /etc/apache2/mods-available/ -name *\lite\*
выход /etc/apache2/mods-available/charset_lite.load
вставьте нужную строку между *\...\*
как то, что когда-либо до или после этого слова
a2enmod
[введите] -> посмотреть все доступные модулиapache2ctl -M
-> увидеть загруженные модули (можноapachectl
на RedHat)
Исключить mod_ и.so и загрузить результат:
$ MODUL=mod_auth_basic.so
$ sudo a2enmod $(<<< $MODUL sed 's#mod_\(.*\)\.so#\1#')
Module auth_basic already enabled