Як увімкнути модулі apache з командного рядка в RedHat?


29

Як увімкнути модулі apache з командного рядка в RedHat?

У системах Debian / Ubuntu я використовую a2enmod для включення модулів з командного рядка.

Чи існує еквівалент для систем типу RedHat / CentOS?

Відповіді:


27

Не існує еквівалента.

Debian / Ubuntu mescher конфігурація 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 робить, це дає вам гарне налаштування апаші, тоді як debian додає власні "поліпшення". Звичайно, ви можете використовувати систему конфігурацій debian в якості шаблону, щоб зробити свій власний та скопіювати сценарії. Однак головний аргумент для установки debian полягає в тому, що пакети модулів apache можуть встановлювати власні конфігураційні файли, без цього це значно менш корисно


Редагувати: Якщо ви шукаєте еквівалентний спосіб написання цього сценарію, то я пропоную вам скористатися каталогом /etc/httpd/conf.d, тут будуть включені будь-які конфігураційні файли. Залежно від того, наскільки складний сценарій, може мати сенс безпосередньо записувати файли одного рядка в conf.d або використовувати посилання для більш складних бітів.


Отже, що я роблю в своїх нових сценаріях побудови сервера? awk / sed божевілля? Створити власні конфігураційні файли та скопіювати їх на місце? Жоден із цих варіантів не звучить привабливо.
МаршаллY

1
Я не впевнений, чому всі нудять на вашу відповідь; це правильно описує, чому не знайдемо сценарії a2enmod у Red Hat-подібних. Особисто я планую використовувати маріонетку для управління подібним макетом на моїх коробках RHEL.
Чад Хунейкутт

1
@womble - Я думаю, що Debian занадто далеко зайняв файли з крихітними файлами, маючи цілий файл для встановлення, наприклад, що порти Apache повинні слухати, наприклад, і я думаю, що сценарії оболонки для створення символьної посилання також є кроком занадто далеко - до Точка, коли вони плутають користувачів, які не розуміють, як насправді працюють їх конфігураційні файли. Я б не назвав це гірким.
theterreceive

Через десять років прокоментуйте RHEL / CentOS 7 принаймні, вам потрібно зареєструватися/etc/httpd/conf.modules.d
cdmo

3

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

Включити conf.d / *. Конф

Коли ви скопіюєте файл конфігурації у /etc/httpd/conf.dнього та має .confрозширення, він буде підхоплений та оброблений під час запуску apache. Зазвичай ви знайдете файли конфігурації для розширень, таких як mod_phpта mod_svn, та додатків, інтегрованих як веб-сервер, як tracвсередині цієї папки.

Побічна примітка: для модулів apache, таких як mod_phpабо mod_auth_mysqlв інших системах, що використовують RPM, наприклад OpenSuSE, можуть бути інші файли конфігурації (наприклад /etc/sysconfig/apache2), які потрібно редагувати, щоб апаш змогла забрати новий модуль. Частина цього залежить від використовуваного інструменту управління системою, тобто 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" та "Install"

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

  • Щоб перевірити, чи завантажено правильно та готово до використання, apachectl -M

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.