Как включить модули apache из командной строки в RedHat?
В системах Debian / Ubuntu я использую a2enmod для включения модулей из командной строки.
Есть ли аналог для систем типа RedHat / CentOS?
Нет эквивалента.
Debian / Ubuntu разбивает конфигурацию apache на большое количество файлов, где каталоги модов и включенных сайтов символически связаны с другими фрагментами файлов конфигурации. Скрипты a2enmod / a2ensite просто манипулируют этими символическими ссылками.
debian$ ls /etc/apache2/mods-enabled
lrwxrwxrwx 1 root root 28 2009-03-12 18:02 alias.conf -> ../mods-available/alias.conf
lrwxrwxrwx 1 root root 28 2009-03-12 18:02 alias.load -> ../mods-available/alias.load
lrwxrwxrwx 1 root root 33 2009-03-12 18:02 auth_basic.load -> ../mods-available/auth_basic.load
lrwxrwxrwx 1 root root 33 2009-03-12 18:02 authn_file.load -> ../mods-available/authn_file.load
lrwxrwxrwx 1 root root 36 2009-03-12 18:02 authz_default.load -> ../mods-available/autoindex.load
lrwxrwxrwx 1 root root 26 2009-03-12 18:02 env.load -> ../mods-available/env.load
lrwxrwxrwx 1 root root 27 2009-03-12 18:02 mime.conf -> ../mods-available/mime.conf
lrwxrwxrwx 1 root root 27 2009-03-12 18:02 mime.load -> ../mods-available/mime.load
lrwxrwxrwx 1 root root 34 2009-03-12 18:02 negotiation.conf -> ../mods-available/negotiation.conf
lrwxrwxrwx 1 root root 34 2009-03-12 18:02 negotiation.load -> ../mods-available/negotiation.load
lrwxrwxrwx 1 root root 27 2009-06-16 21:47 php5.conf -> ../mods-available/php5.conf
lrwxrwxrwx 1 root root 27 2009-06-16 21:47 php5.load -> ../mods-available/php5.load
В системах redhat конфигурация apache по умолчанию хранится в одном файле /etc/httpd/conf/httpd.conf. Все модули загружаются из этого файла, и их можно отключить, закомментировав соответствующий оператор LoadModule.
...
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
...
RedHat / CentOS предоставляют вам довольно простую настройку apache, в то время как debian добавляет свои собственные «улучшения». Вы, конечно, можете использовать систему раздельной конфигурации debian в качестве шаблона для создания своей собственной и скопировать сценарии. Однако главный аргумент в пользу установки debian заключается в том, что пакеты модуля apache могут устанавливать свои собственные файлы конфигурации, поэтому без этого он значительно менее полезен.
Редактировать: Если вы ищете эквивалентный способ написания этого сценария, я предлагаю вам использовать каталог /etc/httpd/conf.d, все файлы конфигурации здесь будут включены. В зависимости от сложности сценария может иметь смысл напрямую записывать однострочные файлы в conf.d или использовать символические ссылки для более сложных битов.
Обычно в системе Redhat вы найдете строку, которая выглядит так внутри /etc/httpd/conf/httpd.conf
:
Include conf.d/*.conf
Когда вы копируете файл конфигурации в /etc/httpd/conf.d
, и у него есть .conf
расширение файла, затем он будет обработан при запуске apache. Обычно вы найдете файлы конфигурации для таких расширений, как mod_php
и mod_svn
, и приложения, которые интегрированы с веб-сервером, например trac
внутри этой папки.
Боковое примечание: для модулей apache, таких как mod_php
или mod_auth_mysql
в других системах, использующих RPM, например OpenSuSE, могут быть другие файлы конфигурации (например, /etc/sysconfig/apache2
), которые необходимо отредактировать, чтобы apache подобрал новый модуль. Отчасти это зависит от используемого инструмента управления системой, например yast2. Некоторые из них зависят от дополнительных продуктов, которые могут быть установлены, например, plesk / cpanel. Тем не менее, папка выше - лучшее место для начала.
yum list mod\*
установите модули, которые вы хотите
например mod_perl
rpm -ql mod_perl.x86_64 | grep /etc/
/etc/httpd/conf.d/perl.conf
/etc/httpd/conf.modules.d/02-perl.conf
редактировать /etc/httpd/conf.d/perl.conf
чтобы включить это
По умолчанию все моды загружаются при установке, если вы не хотите никого загружать
редактировать файл в /etc/httpd/conf.modules.d/02-perl.conf
и прокомментируйте строку загрузки со знаком решетки (#
)
Команда для включения нескольких модулей
sudo a2enmod headers http2 proxy_fcgi rewrite setenvif ssl ...
и команда для отключения нескольких модулей
sudo a2dismod headers http2 proxy_fcgi rewrite setenvif ssl ...
«Включить» модули отличаются от «LoadModules» и «Установить».
service enable httpd
yum install -y <mod_name>
yum list mod\*
Если они уже включены и установлены, чтобы загрузить их, чтобы использовать черновик httpd.conf или * .conf файлы, как
LoadModule ldap_module modules/mod_ldap.so
Чтобы проверить, правильно ли загружен и готов к использованию, apachectl -M