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

29

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

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

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

MarshallY
источник

Ответы:

27

Там нет эквивалента.

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 могут устанавливать свои собственные файлы конфигурации, поэтому без этого он значительно менее полезен.


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

theotherreceive
источник
Так что мне делать в моих новых сценариях сборки сервера? awk / sed сумасшествие? Создать свои собственные файлы конфигурации и скопировать их на место? Ни один из этих вариантов не звучит привлекательно.
MarshallY
1
Я не уверен, почему все жестоко относятся к вашему ответу; он правильно описывает, почему нельзя найти сценарии a2enmod в Red Hat-alikes. Лично я планирую использовать puppet для управления похожим макетом на моих коробках RHEL.
Чад Хьюникутт
1
@womble - я думаю, что debian слишком далеко зашёл о крошечных файлах, имея целый файл для установки, например, портов, которые должен слушать apache, и я думаю, что сценарии оболочки, просто для создания символической ссылки, - это слишком далеко, чтобы точка, в которой они путают пользователей, которые не понимают, как на самом деле работают их конфигурационные файлы. Я бы не назвал это горьким.
theotherreceive
Десять лет спустя комментируйте, по крайней мере, на RHEL / CentOS 7, вам нужно зарегистрироваться/etc/httpd/conf.modules.d
cdmo
3

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

Включить conf.d / *. Conf

При копировании файла конфигурации в /etc/httpd/conf.d, и он имеет .confрасширение файла, то он будет подхвачен и обрабатывается как апач начинается. Обычно в этой папке вы найдете файлы конфигурации для расширений, таких как mod_phpи mod_svn, и приложений, которые интегрированы с веб-сервером trac.

Примечание: для модулей apache, таких как mod_phpили mod_auth_mysqlв других системах, использующих RPM, таких как OpenSuSE, могут существовать другие файлы конфигурации (например /etc/sysconfig/apache2), которые необходимо отредактировать, чтобы apache смог подобрать новый модуль. Отчасти это зависит от используемого инструмента управления системой, то есть yast2. Некоторые из них зависят от устанавливаемых послепродажного обслуживания продуктов, таких как plesk / cpanel. Тем не менее, вышеуказанная папка - лучшее место для начала.

Карл Кацке
источник
Для тех, кто работает с Fedora 21 (и, возможно, с другими версиями или другими дистрибутивами семейства RH), загрузка модуля была перенесена в новый каталог /etc/httpd/conf.modules.d/. В этом случае вы увидите следующую строку в вашем httpd.conf Include conf.modules.d/*.conf.
Ночная сова
1
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и комментировать Загрузить строку со знаком хеша ( #)

Сержио
источник
Это идеальный ответ на вопрос. «Включить» отличается от «LoadModule».
Рагхав Таллам
0

«Включить» модули отличается от «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

Рагхав Таллам
источник