![]() |
Die Apache-Konfigurationsdatei:
|
|
| |
Wie jede andere Software kann selbstverständlich auch der Apache auf dem eigenen System kompiliert werden. Dazu muß das Archiv mit den Sourcen natürlich vorhanden, also von der entsprechenden download-Adresse besorgt worden sein. Die Quellpakete werden als komprimierte Archive vertrieben, überwiegend als *.tar.gz-Archive, und müssen zunächst entpackt werden. Dafür steht der Befehl tar zur Verfügung, der in folgender Form eingesetzt werden kann:
tar -xvzf Archivname
Damit wird das Archiv am selben Ort ausgepackt, beispielsweise in /usr/install (so ein Verzeichnis kann man sich schließlich leicht erstellen). Es gibt auf den grafischen Oberflächen auch Tools, die ähnlich wie WinZip arbeiten - bei KDE ist es das kleine Programm ark, das ein solches Auspacken erledigen kann. Somit kann der Einsatz von tar umgangen werden, was für manche Linux-Benutzer leichter ist, da es inzwischen viele gibt, die nicht gerne Konsolenbefehle tippen, sondern sich eher auf Mausklicks verlassen. Ist dieser Vorgang abgeschlossen, wechselt man in das Verzeichnis mit den eben ausgepackten Dateien, dann folgen nacheinander die nächsten drei Schritte auf der Konsole bzw. im Terminal (XTerm). Es versteht sich von selbst, daß diese Arbeit vom Administrator (root) ausgeführt werden muß:
# Konfigurationsanweisungen ./configure --prefix=PFAD ... [weitere Anweisungen] ... # Bau der Software make # Installation in das Betriebssystem make install
Wer sicher ist, daß make das gewünschte Ergebnis liefert, kann auch gleich make install vorgeben. Der "make"-Befehl sollte, ebenso wie ein C-Compiler, zum System gehören, aber beispielsweise die SuSE 9.1 installiert beides nicht mehr automatisch, man muß sich also vergewissern, daß make auch wirklich zur Verfügung steht.
configure ist ein Shellscript, das mit den Sourcen vertrieben wird und unter anderem in die Makefiles den als "PFAD" angegebenen Installationsort schreibt. Wer über genügend Erfahrung und/oder Motivation verfügt, kann auch dieses Script nach seinen Vorstellungen modifizieren. Aber Achtung: das "configure"-Script für Apache 2.0.50 enthält deutlich über 18 000 Zeilen (bei Apache 1.3.x waren es noch 1 700).
Auch die Art, welche Module wie behandelt werden sollen, regelt dieses Script. Dazu werden der "configure"-Anweisung noch Optionen mitgegeben, was folgendermaßen aussehen kann:
./configure --prefix=PFAD\
--enable-rewrite=shared \
--enable-speling=shared
Damit würden das Modul mod_rewrite sowie das Modul mod_speling kompiliert und in das Zielverzeichnis kopiert, so daß sie später über die LoadModule-Anweisung in der httpd.conf angesprochen werden können.
./configure stellt eine mächtige Anweisung dar, die große Sorgfalt verlangt. Die einfachste Möglichkeit, alle zulässigen Optionen für ./configure kennenzulernen, besteht darin, daß man sich die entsprechende Liste mit
./configure --help
anzeigen läßt. Die Ausgabe ist relativ umfangreich. Wer sich diese Ausgabe einmal anschauen möchte, findet sie hier:
configure-Hilfe
./configure muß immer ausgeführt werden, da sonst beispielsweise nicht bekannt ist, wohin die fertigen Dateien eigentlich installiert werden sollen. Als "PFAD" wird in den README-Dateien zum Apache /usr/local/apache vorgeschlagen bzw. /usr/local/apache2. Man kann diesem Vorschlag folgen oder ihn den eigenen Vorstellungen entsprechend abändern - die Linux-Distributionen folgen diesem Vorschlag in der Regel nicht, wie
weiter vorn bereits dargestellt wurde. Mit make wird der eigentliche Kompiliervorgang angestoßen, der einige Zeit in Anspruch nehmen kann. Danach liegen die gewünschten Dateien bereits vor, befinden sich aber noch nicht am korrekten Ort, sondern in temporären Verzeichnissen. Das ist übrigens auch der Zustand, der für die Zusammenstellung von "Paketen" der einzelnen Distributionen genutzt wird. Es gibt die Gelegenheit, falls man das wünscht, die Dateien anhand des entstandenen Protokolls zu kontrollieren und den Kompiliervorgang gegebenenfalls zu wiederholen, falls irgendetwas nicht wunschgemäß verlaufen ist. Der letzte Schritt, make install, verschiebt die Dateien schließlich an den gewünschten Installationsort innerhalb des Systems, erstellt nötigenfalls die zugehörigen Verzeichnisse und Links, dann kann man die Software benutzen. Um die temporär während des Kompilierlaufes erzeugten Dateien zu löschen, kann danach noch make clean eingegeben werden.
Für den Apache könnte so ein Ablauf also folgendermaßen aussehen:
# Software-Archiv auspacken tar -xvzf httpd-2.0.50.tar.gz # Wechsel in das Installationsverzeichnis cd httpd-2.0.50 # Konfigurationsanweisungen ./configure --prefix=/usr/local/apache2 # Bau der Software make # Installation make install # Entfernen temporärer Dateien make clean
Wer sicher ist, daß dabei keine Fehler oder Probleme auftauchen, kann diese Konsolenbefehle auch in ein kleines eigenes Shellscript schreiben, das die gesamte Installationsarbeit erledigt. Werden, wie hier, keinerlei Optionen oder nur Optionen mit dem Zusatz "=shared" für dynamisch zuladbare Module notiert, entsteht eine ausführbare Datei httpd bzw. httpd2 von ca. 2 MB Größe - und natürlich noch einiges andere. Je mehr Module ohne den Hinweis "=shared" eingebunden, also fest einkompiliert werden, desto größer wird auch die ausführbare Datei. Sollen viele Module später dynamisch angesprochen werden können, könnte der "./configure"-Befehl folgendermaßen aussehen:
./configure --prefix=/usr/local/apache2 --with-perl=/usr/local/bin/perl5.8\ --enable-so --with-mpm=prefork --with-port=80 --libdir=/usr/local/lib/apache2\ --includedir=/usr/local/include/apache2 --enable-v4-mapped --with-ssl=/usr\ --enable-mods-shared=all
Interessant ist die Option --enable-mods-shared=all. Sie bewirkt, daß sämtliche verfügbaren Module kompiliert werden, so daß sie später über die LoadModule-Anweisung eingebunden werden können. Und es ist zu beachten, daß alle diese Optionen für configure in einer Zeile hintereinander geschrieben werden müssen, hier sind die Backslashes lediglich zur besseren Lesbarkeit notiert worden, sie gehören nicht zum Scriptaufruf selbst.
Ist alles wunschgemäß verlaufen und die neue Software installiert, kann der Apache mit dem Befehl
httpd -k start
gestartet werden. Über die Zusammenstellung der Initialisierungsscripts, mit deren Hilfe der Apache Webserver als "daemon" bzw. Hintergrunddienst sofort während des Systemstarts hochgefahren wird, ist
weiter vorn bereits etwas ausgesagt worden.
Neben der Apache-Dokumentation gibt es noch ein paar weitere kleine Hilfstellungen, die auf der Konsole abgerufen werden können. Eine Anzeige der möglichen Startparameter erhält man mit httpd2 -h, was folgendes Bild ergibt:

Mit httpd2 -V erhält man also, gegebenenfalls zu Kontrollzwecken, eine Liste der Bedingungen, unter denen der Apache kompiliert wurde. Das entspricht den vorhin kurz umrissenen Vorgaben für configure. Und eine Liste der fest (statisch) einkompilierten Module kann man sich mit httpd2 -l ausgeben lassen. Wichtig gerade für das "Grundthema" dieses Artikels ist httpd2 -t, womit sich die Syntax der Konfigurationsdatei(en) prüfen läßt:
![]() |
![]() |
Manchmal möchte oder muß man sich den Apache Webserver auch auf einem Windows-Rechner selbst kompilieren. Dazu müssen die Sourcen natürlich vorhanden sein, die als ZIP-Archiv von
http://www.apache.de/dist/httpd heruntergeladen werden können. Allerdings setzt ein solches Vorhaben voraus, daß ein entsprechender C-Compiler auf dem Rechner vorhanden ist, der mindestens den make-Befehl beherrscht und ausführen kann. Mit den Sourcen liefert die Apache Software Foundation bereits ein paar für Microsoft Visual C++6 geeignete Projektfiles mit, die nach entsprechender Systemanpassung genutzt werden können. Ein Konfigurationsscript, das mit configure vergleichbar wäre, steht unter Windows allerdings nicht zur Verfügung.

Eine sehr kurze Anleitung dazu findet sich in D:\Apache\htdocs\manual in der Datei win_compiling.html.html (Apache 1.3.31) bzw in D:\Apache\manual\platform in der Datei win_compiling.xml (Apache 2.0.50). Selbstverständlich gibt es dieselbe Anleitung auch online unter
http://httpd.apache.org/docs-2.0/platform/win_compiling.html. Alles weitere findet sich in den Hilfeseiten für Visual C++.
Ist der Apache erfolgreich kompiliert und fertig installiert worden, lassen sich auch unter Windows einige Befehlszeilen-Parameter aufrufen, die sich wiederum mit apache -? darstellen lassen und dieselben Ergebnisse zeigen wie die oben zitierten Ergebnisse auf einem Linux-System.

© 2007
Impressum, für diese Seite:
christoph.schnauss@berlin.de