Red Hat Linux 7.1: Das Offizielle Red Hat Linux Referenzhandbuch | ||
---|---|---|
Zurück | Kapitel 14 Apache - Anweisungen und Module | Vor |
Da Apache 1.3 DSOs unterstützt, können Sie Apache Module auf einfache Weise laden bzw. Ihre eigenen Module für den Web-Server einkompilieren. DSO-Unterstützung bedeutet, dass Module während der Laufzeit geladen werden können. Da die Module nur bei Bedarf geladen werden, belegen Sie keinen Speicherplatz, wenn sie nicht geladen sind. Dadurch sinkt der Speicherbedarf insgesamt.
Die Apache Group stellt eine vollständige DSO-Dokumentation unter http://www.apache.org/docs/dso.html zur Verfügung. Nach der Installation Ihres Servers können Sie auch unter http://your_domain/manual/mod/ Dokumentationen im HTML-Format zu Apache Modulen finden (falls das Paket apache-manual installiert ist). Im Folgenden wird eine Kurzbeschreibung zum Laden von Modulen gegeben. Wenn Sie mehr Einzelheiten wissen möchten, sollten Sie jedoch die oben genannten URLs aufrufen.
Damit Ihr secure Web server ein dynamisch gemeinsam verwendetes Modul verwenden kann, muss für dieses Modul in der Datei httpd.conf eine LoadModule-Zeile und eine AddModule-Zeile enthalten sein. Viele Module enthalten diese zwei Zeilen bereits standardmäßig in httpd.conf, doch sind einige der weniger oft verwendeten Module auskommentiert. Die auskommentierten Module wurden während des Kompilierens eingefügt, werden jedoch standardmäßig nicht geladen.
Wenn Sie eines dieser nichtgeladenen Module verwenden müssen, finden Sie in der Datei httpd.conf alle verfügbaren Module. Alle verfügbaren Module haben eine entsprechende LoadModule-Zeile. Der Abschnitt LoadModule beginnt mit diesen sieben Zeilen:
#LoadModule mmap_static_module modules/mod_mmap_static.so LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule env_module modules/mod_env.so LoadModule config_log_module modules/mod_log_config.so LoadModule agent_log_module modules/mod_log_agent.so LoadModule referer_log_module modules/mod_log_referer.so #LoadModule mime_magic_module modules/mod_mime_magic.so |
Die meisten der Zeilen sind nicht auskommentiert, was anzeigt, dass jedes verknüpfte Modul einkompiliert wurde und standardmäßig geladen wird. Die erste Zeile ist auskommentiert, d.h. das entsprechende Modul (mmap_static_module) wurde einkompiliert, aber nicht geladen.
Um Ihren secure Web server anzuweisen, ein nicht geladenes Modul zu laden, entfernen Sie zuerst die entsprechende LoadModule-Zeile. Wenn Sie zum Beispiel erreichen möchten, dass Ihr secure Web server das Modul mime_magic_module lädt, kommentieren Sie die folgende Zeile aus:
#LoadModule mime_magic_module modules/mod_mime_magic.so |
Als Nächstes müssen Sie die Kommentare für die entsprechende Zeile im Abschnitt AddModule in der Datei httpd.conf entfernen. Wir fahren nun mit unserem Beispiel von vorhin fort. Entfernen Sie die Kommentare in der mod_mime_magic-Zeile. Die ursprüngliche (Standard-) Zeile sieht folgendermaßen aus:
#AddModule mod_mime_magic.c |
Nachdem Sie für die LoadModule- und AddModule-Zeilen für die Module, die Sie laden möchten, die Kommentare entfernt haben, halten Sie den Web-Server an, und starten Sie ihn neu, wie in Abschnitt namens Starten und Anhalten von httpd beschrieben. Nach dem Start sollten die Module in Ihren secure Web server geladen werden.
Wenn Sie ein eigenes Modul haben, können Sie es zur Datei httpd.conf hinzufügen, damit es als ein DSO einkompiliert und geladen wird. Dazu müssen Sie das Paket apache-devel installieren, wie in Kapitel 13 beschrieben. Das Paket apache-devel wird benötigt, weil es die Include-Dateien, die Header-Dateien und das APache eXtenSion (APXS)-Unterstützungstool installiert. APXS verwendet die Include-Dateien und die Header-Dateien zum Kompilieren Ihres Moduls, damit es mit Apache zusammenarbeiten kann.
Warnung | |
---|---|
Wenn Sie das Apache-Konfigurationstool, ein mit Red Hat Linux geliefertes GUI-Dienstprogramm, verwenden möchten, kompilieren Sie Ihre eigenen Module nicht in den Apache Web-Server und bearbeiten Sie auch die Konfigurationsdatei httpd.conf des Apache Web-Servers nicht. Wenn Sie Apache Module hinzufügen oder httpd.conf bearbeiten möchten, verwenden Sie dagegen nicht das Apache-Konfigurationstool. Weitere Informationen über das Apache-Konfigurationstool finden Sie im Offiziellen Red Hat Linux Handbuch Benutzerdefinierte Konfiguration. |
Wenn Sie ein eigenes Modul geschrieben haben oder eines von einem anderen Benutzer ausborgen, sollten Sie APXS für das Kompilieren Ihrer Modulquellen außerhalb des Apache Quellbaums anwenden können, ohne Compiler- und/oder Linkerflags anpassen zu müssen. Weitere Informationen über APXS finden Sie in der Apache Dokumentation unter http://www.apache.org/docs/dso.html.
Speichern Sie Ihr Modul nach dem Kompilieren mit APXS in /usr/lib/apache. Anschließend muss in der Datei httpd.conf wie oben für die eigenen Module von Apache beschrieben eine LoadModule- und eine AddModule -Zeile eingefügt werden. Fügen Sie nach der LoadModule-Liste in der Datei httpd.conf für die Shared Object-Datei für Ihr Modul eine Zeile wie die folgende ein:
LoadModule foo_module modules/mod_foo.so |
Beachten Sie, dass Sie den Modulnamen und den Namen Ihrer Shared Object-Datei in geeigneter Weise ändern müssen.
Fügen Sie am Ende der AddModule-Liste in der Datei httpd.conf für Ihr Modul eine Zeile für die Quellcodedatei wie die Folgende ein:
AddModule mod_foo.c |
Beachten Sie, dass der Name der Quellcodedatei in geeigneter Weise geändert werden muss.
Halten Sie Ihren Web-Server an und starten Sie ihn erneut wie in Abschnitt namens Starten und Anhalten von httpd beschrieben, nachdem Sie die oben beschriebenen Schritte ausgeführt haben. Wenn Sie keine Fehler gemacht haben und Ihr Modul richtig programmiert ist, sollte der Web-Server Ihr Modul beim Starten finden und laden.
Der mod_ssl-Sicherheitsteil Ihres Web-Servers liegt als Dynamic Shared Object (DSO) vor. Das bedeutet, der Apache Web-Server kann vom Benutzer neu kompiliert werden, wenn der EAPI-Erweiterungspatch aus dem mod_ssl-Sicherheitsmodul in Apache integriert wird. Folgen Sie der in der mod_ssl-Dokumentation enthaltenen Anleitung zum Integrieren von mod_ssl in Apache, fügen Sie jedoch das folgende Flag hinzu:
--with-eapi-only |
Die vollständige Befehlszeile sollte dann so aussehen:
./configure [userflags] --with-eapi-only |
Erstellen und installieren Sie dann Apache.
Bitte beachten | |
---|---|
Red Hat kann für neukompilierte Versionen von Apache Web-Server keinen Support anbieten. Für die Installation der Ihnen bereitgestellten Version wird Support angeboten, wenn Sie jedoch Apache neu kompilieren, entfällt dieser. Bitte nehmen Sie keine Neukompilierung von Apache vor, es sei denn, Sie wissen genau, was Sie tun. |