Frage Wie aktiviere ich Apache-Module über die Befehlszeile in RedHat?


Wie aktiviere ich Apache-Module über die Befehlszeile in RedHat?

Auf Debian / Ubuntu Systemen benutze ich a2enmod um Module von der Kommandozeile aus zu aktivieren.

Gibt es ein Äquivalent für RedHat / CentOS-Systeme?


27
2017-08-20 00:14


Ursprung




Antworten:


Es gibt kein Äquivalent.

Debian / Ubuntu schliesst die Apache-Konfiguration in eine große Anzahl von Dateien ab, wobei Verzeichnisse von aktivierten Mods und Sites mit anderen Snippets von Konfigurationsdateien verknüpft sind. Die a2enmod / a2ensite-Skripte manipulieren nur diese symbolischen Verknüpfungen.

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

Auf Redhat-Systemen wird die Apache-Konfiguration standardmäßig in einer Datei /etc/httpd/conf/httpd.conf gespeichert. Alle Module werden aus dieser Datei geladen und können durch Auskommentieren der entsprechenden LoadModule-Anweisung deaktiviert werden.

...
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
...

Was RedHat / CentOS tut, ist ein hübsches Stock-Apache-Setup, während Debian ihre eigenen "Verbesserungen" hinzufügt. Sie könnten natürlich das debian split config-System als Vorlage verwenden, um Ihre eigenen zu erstellen und die Skripte zu kopieren. Das Hauptargument für das Debian-Setup ist jedoch, dass Apache-Modulpakete ihre eigenen Konfigurationsdateien installieren können, ohne dass es wesentlich weniger nützlich wäre


Bearbeiten: Wenn Sie nach einer äquivalenten Art des Scripts suchen, dann schlage ich vor, dass Sie das /etc/httpd/conf.d Verzeichnis verwenden, alle darin enthaltenen Konfigurationsdateien sind enthalten. Je nachdem, wie kompliziert das Skript ist, kann es sinnvoll sein, eine Zeile in conf.d zu schreiben oder für komplexere Bits Symlinks zu verwenden.


23
2017-08-20 01:02



Was mache ich in meinen neuen Server-Build-Skripten? awk / sed Verrücktheit? Erstelle meine eigenen Konfigurationsdateien und kopiere sie an Ort und Stelle? Keine dieser Optionen klingt ansprechend. - MarshallY
Ich bin mir nicht sicher, warum alle auf deine Antwort schimpfen; Es beschreibt richtig, warum man die a2enmod-Skripte in Red Hat-Alikes nicht findet. Persönlich ist mein Plan, Marionette zu verwenden, um ein ähnliches Layout auf meinen RHEL-Boxen zu verwalten. - Chad Huneycutt
@womble - Ich denke, dass debian die winzigen Dateien zu weit getrieben hat und eine ganze Datei hat, um genau festzulegen, welche Ports Apache zum Beispiel hören soll, und ich denke, dass Shell-Skripte, um einen Symlink zu erstellen, auch ein Schritt zu weit sind der Punkt, an dem sie Benutzer verwirren, die nicht verstehen, wie ihre Konfigurationsdateien tatsächlich funktionieren. Ich würde das nicht bitter nennen. - theotherreceive


Normalerweise finden Sie auf einem Redhat-System eine Zeile, die innen so aussieht /etc/httpd/conf/httpd.conf:

Enthalten Sie conf.d / *. Conf

Wenn Sie eine Konfigurationsdatei in kopieren /etc/httpd/conf.dund es hat a .conf Dateierweiterung, dann wird es abgeholt und verarbeitet, wenn Apache startet. Normalerweise finden Sie Konfigurationsdateien für Erweiterungen wie mod_php und mod_svnund Anwendungen, die in den Webserver integriert sind trac, in diesem Ordner.

Randnotiz: für Apache-Module wie mod_php oder mod_auth_mysql Auf anderen Systemen, die RPM verwenden, wie OpenSuSE, können andere Konfigurationsdateien (wie /etc/sysconfig/apache2) die bearbeitet werden müssen, damit Apache ein neues Modul aufnehmen kann. Einige davon hängen von dem Systemverwaltungswerkzeug ab, das verwendet wird, d.h. yast2. Einige davon sind abhängig von Aftermarket-Produkten, die wie Plesk / Cpanel installiert werden können. Der obige Ordner ist jedoch der beste Ausgangspunkt.


3
2017-08-20 01:49



Für jeden, der mit Fedora 21 (und möglicherweise anderen Versionen oder anderen RH-Familien-Distributionen) arbeitet, wurde das Laden des Moduls in ein neues Verzeichnis namens /etc/httpd/conf.modules.d/ verschoben. Sie werden die folgende Zeile in Ihrer httpd.conf sehen Include conf.modules.d/*.conf wenn das der Fall ist. - Night Owl


yum list mod\*

Installieren Sie Module, die Sie möchten

zum Beispiel mod_perl

rpm -ql mod_perl.x86_64 | grep /etc/

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

bearbeiten /etc/httpd/conf.d/perl.conf um es zu ermöglichen

Standardmäßig werden alle Mods geladen, wenn sie installiert sind, wenn du niemanden laden willst

Datei bearbeiten in /etc/httpd/conf.modules.d/02-perl.confund Kommentar Zeile mit Hash-Zeichen laden (#)


0
2018-06-14 05:28