![]() |
Die Apache-Konfigurationsdatei:
|
|
| |
Vielleicht hängt die Konsequenz, mit der der Apache aus einzelnen Modulen zusammengesetzt wird, ja damit zusammen, daß er 1994/1995 ursprünglich aus einem Bündel einzelner Patches für den NCSA-Server entstand (zumindest sein Name ist dieser Entstehungsgeschichte zu verdanken). Durch das Konzept des modularen Aufbaus wird es einem Administrator freigestellt, die Funktionalität bzw. den zur Verfügung gestellten Leistungsumfang der Software selbst zu bestimmen. Diese Festlegungen erfolgen an zwei Stellen: einmal kann man während des Kompilierlaufs bereits darüber entscheiden, ob Softwarekomponenten als fest einkompilierte Module ihre Funktionsbereiche grundsätzlich zur Verfügung stellen sollen, und andererseits ist es möglich, in einer Konfigurationsdatei wie der httpd.conf festzulegen, ob man durch das Zuladen von Modulen zur Laufzeit der Software diese Funktionsbereiche temporär ansprechbar machen möchte.
Entsprechend ihrem Aufgabenbereich können die Module verschiedenen Gruppen zugeordnet werden. Das ergibt zwei große Gruppen: Basismodule (oder Kernmodule) und andere Module. Eine andere Gruppeneinteilung kann entsprechend dem Status vorgenommen werden - also entsprechend der Art, wie sie kompiliert werden: Multiprozessing-Module (MPM), Basismodule, Erweiterungsmodule, experimentelle und externe Module. Eine Besonderheit stellen die MPM dar, die es nur für Apache 2.0.x gibt (Apache 1.3.x folgt einem anderen, älteren Modulkonzept): obwohl in den Sourcen mehrere solcher Module zur Verfügung stehen, wird immer nur genau eines benötigt, das auf die Einsatzplattform zugeschnitten ist. Auf einer Windows-Maschine kann daher immer nur mod_winnt eingesetzt werden. Das hat damit zu tun, daß Windows kein echtes Multiprozeß-System ist und für den Apache immer nur zwei Prozesse gestartet werden können - der eigentliche Server-Prozeß und ein "Child"-Prozeß. Auf einer Linux-Maschine können dagegen unterschiedliche "Child"-Prozesse gleichzeitig nebeneinander laufen.
Zur Laufzeit des Servers stehen die Kernmodule (und die eventuell statisch einkompilierten Module) immer zur Verfügung. Es gibt derzeit nur drei Kernmodule, die aber enorme Bedeutung haben:
KeepAlive zuständig und damit für die Lebensdauer von HTTP-Verbindungen. In Apache 1.3.x für alle core-Anweisungen zuständig.LoadModule-Anweisung als DSO Verwendung finden sollenAndere Module können entsprechend dem Konzept der "dynamic shared objects" (DSO) mit Hilfe der LoadModule-Anweisung in der httpd.conf dazugeladen werden. Einige dieser Module wird man in fast allen Fällen benutzen wollen, beispielsweise mod_alias, das solche wichtigen Befehle wie ScriptAlias konfiguriert, mod_acces, das die Anweisung Order Allow,Deny konfiguriert oder mod_dir, mit dem ein DirectoryIndex erst ermöglicht wird.
In der Apache-Online-Dokumentation gibt es eine bereits übersetzte
Auflistung aller möglichen Module. Die Seite mit den Erläuterungen zu
core ist ebenfalls in deutscher Sprache verfügbar und sollte bei auftretenden Fragen oder Unklarheiten immer konsultiert werden.
Wenn man den Apache nicht selbst kompiliert, stehen nicht alle Module zur Verfügung, die zum Lieferumfang der Apache-Sourcen gehören. Normalerweise ist das kein Problem, da das, was die "default"-Liste enthält, vollauf genügen kann. Diese Liste ist anfangs relativ lang. Abhängig von Apache-Version, Betriebssystem und der Art, wie der Apache kompiliert wurde, unterscheidet sich die Anzahl der bereits eingetragenen Modulnamen. Einige sind deaktiviert (es steht die Raute vor dem Modulnamen).
Es ist nicht leicht, sich darüber Klarheit zu verschaffen, welches Modul nun tatsächlich für welche Aufgaben benötigt wird. Im Grunde genommen ist es reichlich ein Dutzend, das für die wichtigsten Funktionen, die der Server nahezu immer erfüllen muß, Verwendung findet:
| Modulname | Einsatzgebiet |
|---|---|
mod_access |
stellt die Anweisungen "Order allow,deny" bereit, mit denen sich der Zugriff auf Verzeichnisinhalte regeln läßt |
mod_actions |
ist für die Ausführung von Scripts (CGI/Perl) zuständig - wird insbesondere auf Windows-Maschinen benötigt |
mod_alias |
läßt die Verwendung von Aliasnamen für Verzeichnisse außerhalb des DocumentRoot zu sowie den Einsatz von "ScriptAlias"-Namen beispielsweise für CGI-Scripts oder PHP |
mod_auth |
ist für die Benutzer-Authentication zuständig und liest Benutzer- und Gruppendaten ein |
mod_autoindex |
bestimmt das Aussehen von servergenerierten Verzeichnislisten |
mod_cgi |
macht den Einsatz von CGI-Scripts möglich |
mod_dir |
ermöglicht die Vergabe von Dateinamen, die als "DirectoryIndex" angesprochen werden sollen |
mod_include |
sorgt für die Ausführung von SSI |
mod_info |
stellt Informationen zur Serverkonfiguration bereit - insbesondere über die möglichen und realisierten modulspezifischen Anweisungen |
mod_log_config |
konfiguriert das Zugriffsprotokoll |
mod_mime |
verknüpft Dateinamen mit Dateiinhalten und Dateiverhalten (Sprache, Zeichensatz u.ä.) |
mod_mime_magic |
legt die MIME-Typen ansprechbarer Dateien fest, indem einige wenige bytes ausgewertet werden |
mod_negotiation |
ermöglicht das Aushandeln von Übertragungsbedingungen zwischen Server und anfragendem Client |
mod_setenvif |
kann Umgebungsvariablen setzen |
mod_status |
gibt Statusanzeigen über den laufenden Serverbetrieb aus |
Eine ![]()
Auflistung der einsetzbaren Module wird von der Online-Dokumentation bereitgestellt. Für den Anfang wird man aber kaum mehr als die oben genannten Module benötigen. Die Befehle, die von diesen Modulen bereitgestellt werden, genügen vollauf, um eine Testumgebung zu erstellen. Es gibt aber noch weitere Module, die an dieser Stelle der Online-Dokumentation nicht aufgeführt werden, da sie nicht oder noch nicht zum Lieferumfang des Apache gehören; Informationen dazu finden sich unter
http://modules.apache.org. Ein weiterer wichtiger Zusatz, der heute fast immer gebraucht wird, ist mod_php. Dazu gibt es später einige Hinweise.
© 2007
Impressum, für diese Seite:
christoph.schnauss@berlin.de