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

29

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

Auf Debian / Ubuntu-Systemen verwende ich a2enmod, um Module über die Befehlszeile zu aktivieren.

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

MarshallY
quelle

Antworten:

27

Es gibt kein Äquivalent.

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

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 befindet sich die Apache-Konfiguration standardmäßig in einer Datei /etc/httpd/conf/httpd.conf. Alle Module werden aus dieser Datei geladen und können deaktiviert werden, indem die entsprechende LoadModule-Anweisung auskommentiert wird.

...
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 macht, gibt Ihnen ein hübsches Standard-Apache-Setup, während Debian ihre eigenen "Verbesserungen" hinzufügt. Sie können natürlich das Debian-Split-Konfigurationssystem 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 dies wesentlich weniger nützlich ist


Bearbeiten: Wenn Sie nach einer äquivalenten Art der Skripterstellung suchen, dann schlage ich vor, dass Sie das Verzeichnis /etc/httpd/conf.d verwenden. Alle Konfigurationsdateien hier werden eingeschlossen. Je nachdem, wie kompliziert das Skript ist, kann es sinnvoll sein, Dateien mit einer Zeile direkt in conf.d zu schreiben oder Symlinks für kompliziertere Bits zu verwenden.

theotherreceive
quelle
Was mache ich in meinen neuen Server-Build-Skripten? awk / sed Verrücktheit? Eigene Konfigurationsdateien erstellen und an Ort und Stelle kopieren? Keine dieser Optionen klingt ansprechend.
MarshallY
1
Ich bin mir nicht sicher, warum alle Ihre Antwort kritisieren. es beschreibt richtig, warum man die a2enmod-Skripte in Red Hat-alikes nicht findet. Persönlich ist mein Plan, Puppet zu verwenden, um ein ähnliches Layout auf meinen RHEL-Boxen zu verwalten.
Chad Huneycutt
1
@womble - Ich denke, Debian hat die winzigen Dateien zu weit gebracht, da es eine ganze Datei gibt, um festzulegen, welche Ports Apache zum Beispiel abhören soll Dies ist der Punkt, an dem Benutzer verwirrt werden, die nicht verstehen, wie ihre Konfigurationsdateien tatsächlich funktionieren. Das würde ich nicht bitter nennen.
theotherreceive
Zehn Jahre später Kommentar, auf RHEL / CentOS 7 mindestens, müssen Sie einchecken/etc/httpd/conf.modules.d
CDMO
3

Auf einem Redhat-System finden Sie normalerweise eine Zeile, die wie folgt aussieht /etc/httpd/conf/httpd.conf:

Include conf.d / *. Conf

Wenn Sie eine Konfigurationsdatei in kopieren /etc/httpd/conf.d, und eine hat .confDateierweiterung, dann wird es als Apache startet abgeholt und verarbeitet werden. In diesem Ordner finden Sie normalerweise Konfigurationsdateien für Erweiterungen wie mod_phpund mod_svnund Anwendungen, die in den Webserver integriert sind trac.

Randnotiz: Für Apache-Module wie mod_phpoder mod_auth_mysqlauf anderen Systemen, die RPM verwenden, wie beispielsweise OpenSuSE, müssen möglicherweise andere Konfigurationsdateien (z. B. /etc/sysconfig/apache2) bearbeitet werden, damit Apache ein neues Modul aufnimmt . Ein Teil davon hängt vom verwendeten Systemverwaltungs-Tool ab, dh yast2. Einige davon hängen von Aftermarket-Produkten ab, die installiert werden können, wie z. B. plesk / cpanel. Der oben genannte Ordner ist jedoch der beste Ausgangspunkt.

Karl Katzke
quelle
Für alle, die mit Fedora 21 (und möglicherweise anderen Versionen oder Distributionen der RH-Familie) arbeiten, wurde das Laden des Moduls in ein neues Verzeichnis mit dem Namen /etc/httpd/conf.modules.d/ verschoben. In Ihrer httpd.conf Include conf.modules.d/*.confwird in diesem Fall die folgende Zeile angezeigt .
Nachteule
1
yum list mod\*

Installieren Sie die gewünschten Module

beispielsweise 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 aktivieren

Standardmäßig werden alle Mods geladen, wenn sie installiert sind, wenn Sie jemanden nicht laden möchten

Datei bearbeiten /etc/httpd/conf.modules.d/02-perl.confund kommentieren Zeile mit Rautezeichen laden ( #)

Sérgio
quelle
Dies ist die perfekte Antwort auf die Frage. "Aktivieren" unterscheidet sich von "LoadModule".
Raghav Tallam
0

"Module aktivieren" unterscheidet sich von "LoadModules" und "Installieren"

  • Wenn bereits installiert und offline, kann der Root- Benutzerservice enable httpd
  • Wenn Module und ihre conf-Dateien nicht verfügbar sind, kann der Root- Benutzeryum install -y <mod_name>
  • Überprüfen Sie die Verfügbarkeit mit yum list mod\*
  • Wenn bereits aktiviert und installiert, laden Sie diese, um die Entwurfsdateien httpd.conf oder * .conf wie folgt zu verwenden
    LoadModule ldap_module modules/mod_ldap.so

  • Um zu überprüfen, ob das Gerät richtig eingelegt und betriebsbereit ist, apachectl -M

Raghav Tallam
quelle