Jak włączyć moduły Apache z wiersza poleceń w RedHat?

29

Jak włączyć moduły Apache z wiersza poleceń w RedHat?

W systemach Debian / Ubuntu używam a2enmod, aby włączyć moduły z wiersza poleceń.

Czy istnieje odpowiednik dla systemów typu RedHat / CentOS?

MarshallY
źródło

Odpowiedzi:

27

Nie ma odpowiednika.

Debian / Ubuntu rozbija konfigurację Apache do dużej liczby plików, w których katalogi modów i włączonych stron są symlinkowane z innymi fragmentami plików konfiguracyjnych. Skrypty a2enmod / a2ensite po prostu manipulują tymi dowiązaniami symbolicznymi.

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

W systemach redhat konfiguracja apache jest domyślnie przechowywana w jednym pliku /etc/httpd/conf/httpd.conf. Wszystkie moduły są ładowane z tego pliku i można je wyłączyć, komentując odpowiednią instrukcję 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
...

To, co robią RedHat / CentOS, daje całkiem przyzwoitą konfigurację apache, podczas gdy debian dodaje własne „ulepszenia”. Możesz oczywiście użyć systemu konfiguracji split Debiana jako szablonu do stworzenia własnego i skopiowania skryptów. Jednak głównym argumentem dla instalacji Debiana jest to, że pakiety modułu Apache mogą instalować własne pliki konfiguracyjne, więc bez tego jest to znacznie mniej przydatne


Edycja: Jeśli szukasz równoważnego sposobu skryptowania tego, sugeruję użycie katalogu /etc/httpd/conf.d, wszelkie zawarte tu pliki konfiguracyjne zostaną uwzględnione. W zależności od stopnia skomplikowania skryptu, sensowne może być bezpośrednie zapisanie jednego pliku linii w conf.d lub użycie dowiązań symbolicznych do bardziej skomplikowanych bitów.

inne
źródło
Co więc robię w moich nowych skryptach kompilacji serwera? awk / sed szaleństwo? Utworzyć własne pliki konfiguracyjne i skopiować je na miejsce? Żadna z tych opcji nie wydaje się atrakcyjna.
MarshallY,
1
Nie jestem pewien, dlaczego wszyscy tak surowo reagują na twoją odpowiedź; poprawnie opisuje, dlaczego nie można znaleźć skryptów a2enmod w Red Hat-alikes. Osobiście moim planem jest użycie marionetki do zarządzania podobnym układem w moich pudełkach RHEL.
Chad Huneycutt,
1
@womble - myślę, że debian posunął się za daleko za małymi plikami, mając cały plik do ustawiania, na przykład, portów, na których apache powinien nasłuchiwać, i myślę, że skrypty powłoki tylko po to, aby utworzyć dowiązanie symboliczne, są również o krok za daleko - aby punkt, w którym mylą użytkowników, którzy nie rozumieją, jak faktycznie działają ich pliki konfiguracyjne. Nie nazwałbym tego gorzkim.
theotherreceive
Dziesięć lat później skomentuj, przynajmniej na RHEL / CentOS 7, musisz się zameldować/etc/httpd/conf.modules.d
cdmo
3

Zazwyczaj w systemie Redhat znajdziesz linię, która wygląda następująco /etc/httpd/conf/httpd.conf:

Uwzględnij conf.d / *. Conf

Po skopiowaniu pliku konfiguracyjnego do niego /etc/httpd/conf.d, który ma .confrozszerzenie pliku, zostanie on pobrany i przetworzony w momencie uruchomienia apache. Zazwyczaj w tym folderze znajdują się pliki konfiguracyjne dla rozszerzeń takich jak mod_phpi mod_svnoraz aplikacji zintegrowanych z serwerem WWW jak trac.

Uwaga dodatkowa: w przypadku modułów apache, takich jak mod_phplub mod_auth_mysqlw innych systemach korzystających z RPM, takich jak OpenSuSE, mogą istnieć inne pliki konfiguracyjne (jak /etc/sysconfig/apache2), które wymagają edycji, aby apache mógł pobrać nowy moduł. Niektóre z nich zależą od używanego narzędzia do zarządzania systemem, tj. Yast2. Niektóre z nich zależą od produktów, które można zainstalować na rynku wtórnym, takich jak plesk / cpanel. Jednak powyższy folder jest najlepszym miejscem do rozpoczęcia.

Karl Katzke
źródło
Dla każdego pracującego z Fedorą 21 (i ewentualnie innymi wersjami lub innymi dystrybucjami z rodziny RH) ładowanie modułu zostało przeniesione do nowego katalogu o nazwie /etc/httpd/conf.modules.d/. W Include conf.modules.d/*.conftakim przypadku w httpd.conf pojawi się następujący wiersz .
Night Owl
1
yum list mod\*

zainstaluj moduły, które chcesz

na przykład mod_perl

rpm -ql mod_perl.x86_64 | grep /etc/

/etc/httpd/conf.d/perl.conf
/etc/httpd/conf.modules.d/02-perl.conf

edytuj, /etc/httpd/conf.d/perl.confaby go włączyć

Domyślnie wszystkie mody są ładowane po zainstalowaniu, jeśli nie chcesz kogoś ładować

edytuj plik /etc/httpd/conf.modules.d/02-perl.confi komentuj Załaduj wiersz ze znakiem skrótu ( #)

Sérgio
źródło
To idealna odpowiedź na pytanie. „Enable” różni się od „LoadModule”.
Raghav Tallam
0

Moduły „Enable” różnią się od „LoadModules” i Install

  • Jeśli jest już zainstalowany i jest offline, użytkownik root może to zrobićservice enable httpd
  • Jeśli moduły i ich pliki conf nie są dostępne, użytkownik root może to zrobićyum install -y <mod_name>
  • sprawdź dostępność za pomocą yum list mod\*
  • Jeśli są już włączone i zainstalowane, aby je załadować, użyj plików roboczych it httpd.conf lub * .conf , as
    LoadModule ldap_module modules/mod_ldap.so

  • Aby zweryfikować, czy załadowano poprawnie i jest gotowy do użycia, apachectl -M

Raghav Tallam
źródło