it-swarm.xyz

Как включить модули Apache из командной строки в RedHat?

Как включить модули Apache из командной строки в RedHat?

В системах Debian/Ubuntu я использую a2enmod для включения модулей из командной строки.

Есть ли аналог для систем типа RedHat/CentOS?

30
MarshallY

Нет аналога.

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 Split в качестве шаблона для создания своих собственных и копирования сценариев. Тем не менее, основной аргумент для установки debian заключается в том, что пакеты модулей Apache могут устанавливать свои собственные файлы конфигурации, поэтому без этого он значительно менее полезен.


Edit: Если вы ищете эквивалентный способ написания этого сценария, тогда я предлагаю вам использовать каталог /etc/httpd/conf.d, все конфигурационные файлы здесь будут включены. В зависимости от сложности сценария может иметь смысл записать файлы из одной строки в conf.d или использовать символические ссылки для более сложных битов.

27
theotherreceive

Как правило, в системе Redhat вы найдете строку, которая выглядит примерно так внутри /etc/httpd/conf/httpd.conf:

Включить 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. Тем не менее, вышеуказанная папка - лучшее место для начала.

3
Karl Katzke
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.confand comment Загрузить строку со знаком хеша (#)

1
Sérgio

"Включить" модули отличается от "LoadModules" и установить

  • Если он уже установлен и находится в автономном режиме, root пользователь может service enable httpd
  • Если модули и их файлы conf недоступны, то root пользователь может yum install -y <mod_name>
  • проверить наличие с помощью yum list mod\*
  • Если они уже включены и установлены, загрузите их для использования черновиков файлов httpd.conf или *. Conf, как
    LoadModule ldap_module modules/mod_ldap.so

  • Для проверки, если загружен правильно и готов к использованию, apachectl -M

0
Raghav Tallam