Apache HTTP Server Version 2.2
Kompilieren und Installieren
Dieses Dokument umfaßt nur die Kompilierung und Installation des Apache HTTP Servers auf Unix und Unix-ähnlichen Systemen. Für die Kompilierung und Installation unter Windows lesen Sie bitte Den Apache HTTPd unter Microsoft Windows betreiben. Für andere Plattformen lesen Sie bitte die Dokumentation Plattformen.
Der Apache HTTPd verwendet libtool
und
autoconf
, um eine Erstellungsumgebung zu schaffen, die der
vieler anderer Open Source Projekte ähnlich sieht.
Wenn Sie von einer Unterversion auf die nächste aktualisieren (z.B. von 2.2.50 auf 2.2.51), springen Sie bitte zum Abschnitt Upgrade.
Überblick für die Ungeduldigen
Download | $ lynx http://httpd.apache.org/download.cgi
|
Auspacken | $ gzip -d httpd-NN.tar.gz |
Konfigurieren | $ ./configure --prefix=PREFIX
|
Kompilieren | $ make |
Installieren | $ make install |
Anpassen | $ vi PREFIX/conf/httpd.conf |
Testen | $ PREFIX/bin/apachectl -k start
|
NN muss durch die entsprechende Versionsnummer ersetzt
werden und PREFIX durch den Verzeichnispfad,
in dem der Server installiert werden soll. Wenn PREFIX nicht
angegeben ist, wird die Voreinstellung /usr/local/apache2
verwendet.
Beginnend mit den Anforderungen für die Kompilierung und Installation des Apache HTTP Servers ist weiter unten jeder Abschnitt des Kompilierungs- und Installationsvorganges genauer beschrieben.
Anforderungen
Folgende Anforderungen gelten für die Erstellung des Apache HTTPd:
- Plattenplatz
- Stellen Sie sicher, dass Sie kurzzeitig wenigstens 50 MB freien Festplattenplatz zur Verfügung haben. Nach der Installation belegt der Apache ungefähr 10 MB Plattenplatz. Der tatsächliche Platzbedarf variiert in Abhängigkeit von den gewählten Konfigurationseinstellungen und Modulen von Drittanbietern.
- ANSI-C-Compiler und Generierungswerkzeuge
- Stellen Sie sicher, dass Sie einen ANSI-C Compiler installiert
haben. Der GNU C
Compiler (GCC) der Free Software
Foundation (FSF) ist empfehlenswert. Wenn
Sie den GCC nicht besitzen, stellen Sie zumindest sicher, dass der
Compiler Ihres Anbieters ANSI-kompatibel ist. Außerdem muss Ihr
PATH
wesentliche Generierungswerkzeuge wiemake
enthalten. - Zeitgenauigkeit bewahren
- Elemente des HTTP-Protokolls werden in Form einer Tageszeit
ausgedrückt. Darum sollten Sie jetzt prüfen, ob Ihr System
die Fähigkeit zur Zeitsynchronisation besitzt, und diese
gegebenenfalls installieren. Üblicherweise werden hierfür
die Programme
ntpdate
oderxntpd
verwendet, die auf dem Network Time Protocol (NTP) basieren. Nähere Informationen über NTP Software und öffentliche Zeitserver finden Sie auf der NTP-Homepage. - Perl 5 [OPTIONAL]
- Für einige Hilfsskripte wie
apxs
oderdbmmanage
(die in Perl geschrieben sind) wird der Perl 5 Interpreter benötigt (die Versionen ab 5.003 sind ausreichend). Wenn Sie mehrere Perl Interpreter haben (beispielsweise eine systemweite Installation von Perl 4 und Ihre eigene Perl 5-Installation), dann sollten Sie die--with-perl
-Option (siehe unten) verwenden, um sicherzustellen, dass der richtige Interpreter vonconfigure
ausgewählt wird. Wenn kein Perl 5-Interpreter vomconfigure
-Skript gefunden werden kann, können Sie die betroffenen Hilfsskripte nicht verwenden, sind jedoch selbstverständlich nach wie vor in der Lage, den Apache HTTPd zu bauen und zu installieren. - apr/apr-util >= 1.2
apr
undapr-util
werden mit den Quelltext-Veröffentlichungen des Apache HTTPd gebündelt und in nahezu allen Fällen ohne Probleme verwendet. Sind jedoch dieapr
- oderapr-util
-Versionen 1.0 oder 1.1 auf Ihrem System installiert, dann müssen Sie dieseapr
-/apr-util
-Installationen entweder aktualisieren oder httpd separate Kompilate verwenden lassen. Um hierfür die mitgeliefertenapr
-/apr-util
-Quellen zu verwenden, müssen Sie diese manuell installieren:# apr 1.2 bauen und installieren
cd srclib/apr
./configure --prefix=/usr/local/apr-httpd/
make
make install
# apr-util 1.2 bauen und installieren
cd ../apr-util
./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/
make
make install
# httpd konfigurieren
cd ../../
./configure --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/
Download
Der Apache HTTP Server kann von der Apache-HTTP-Server-Downloadseite heruntergeladen werden, auf der
verschiedene Spiegelserver angegeben sind. Für die meisten Benutzer
des Apache HTTPd ist es auf Unix-ähnlichen Systemen am Besten, die
Quellcodeversion herunterzuladen und zu kompilieren. Der
Erstellungsprozess (weiter unten beschrieben) ist einfach und erlaubt es
Ihnen, den Server Ihren Bedürfnissen anzupassen. Dazu kommt, dass
Binärdistributionen gegenüber der aktuellen Quellcodeversion oft
veraltet sind. Wenn Sie tatsächlich ein Binärpaket
herunterladen, folgen Sie bitte den Anweisungen in der Datei
INSTALL.bindist
, die der Distribution beiliegt.
Es ist wichtig, dass Sie nach dem Herunterladen überprüfen, dass es sich um einer vollständige und unveränderte Version des Apache HTTP Servers handelt. Das können Sie erreichen, indem Sie das heruntergeladene Paket gegen die PGP-Signatur prüfen. Einzelheiten dazu erfahren Sie auf der Download-Seite. Es ist auch ein erweitertes Beispiel verfügbar, dass die Anwendung von PGP beschreibt.
Auspacken
Das Auspacken des Quellcodes aus dem Apache-HTTPd-Tarball besteht aus einem simplen Dekomprimieren und danach "Ent-tarren":
$ gzip -d httpd-NN.tar.gz
$ tar xvf httpd-NN.tar
Dies erstellt unterhalb des aktuellen Verzeichnisses ein neues
Verzeichnis, das den Quellcode für die Distribution enthält.
Sie sollten mit cd
in dieses Verzeichnis wechseln,
bevor Sie mit der Kompilierung des Servers weitermachen.
Den Codebaum konfigurieren
Der nächste Schritt ist die Konfiguration des
Apache-HTTPd-Codebaumes für Ihre spezielle Plattform und Ihre
persönlichen Bedürfnisse. Dies wird mit dem Skript
configure
durchgeführt, das im Wurzelverzeichnis
der Distribution enthalten ist. (Entwickler, welche eine nicht
freigegebene Version des Apache-HTTPd-Codebaumes herunterladen, müssen
autoconf
und libtool
installiert haben und müssen
buildconf
ausführen, bevor sie mit den
nächsten Schritten fortfahren können. Dies wird bei
offiziellen Releases nicht notwendig sein.)
Um den Codebaum mit den Standardeinstellungen zu konfigurieren,
geben Sie einfach ./configure
ein. Zur Änderung
dieser Voreinstellungen akzeptiert configure
eine
Reihe von Variablen und Kommandozeilenoptionen.
Die wichtigste Option ist --prefix
, der Ablageort, an dem
der Apache HTTP Server später installiert wird, da er für diesen Ort
konfiguriert werden muss, um korrekt zu arbeiten. Eine feinere Einstellung
der Dateiablagen ist mit weiteren configure-Optionen
möglich.
Weiterhin können Sie zu diesem Zeitpunkt festlegen, welche Funktionalität
Sie in den Apache HTTPd aufnehmen möchten, indem Sie Module aktivieren oder deaktivieren. Der Apache HTTP
Server bindet standardmäßig einen Satz von Basismodulen ein. Andere Module
werden mit Hilfe der Option --enable-module
aktiviert, wobei module den Namen des Moduls ohne das
Präfix mod_
darstellt. Ausserdem sind alle Unterstriche
durch Bindestriche zu ersetzen. Sie können sich auch entscheiden,
Module als "Shared Objects (DSOs)" zu kompilieren,
welche zur Laufzeit ge- und entladen werden können. Dazu verwenden
Sie die Option --enable-module=shared
.
Entsprechend können Sie Basismodule mit der Option
--disable-module
deaktivieren. Lassen Sie Vorsicht
walten. wenn Sie diese Optionen verwenden, da configure
Sie nicht warnen kann, wenn die von Ihnen angegebenen Module nicht
existieren; die Option wird dann einfach ignoriert.
Zusätzlich ist es zuweilen notwendig, das
configure
-Skript mit Extrainformationen zum Ablageort
Ihres Compilers, Ihrer Bibliotheken oder Header-Dateien zu versorgen. Das
tun Sie, indem Sie entweder Umgebungsvariablen oder Kommandozeilenoptionen
an configure
übergeben. Für mehr Informationen
lesen Sie bitte die Hilfeseite zu configure
.
Um einen kurzen Eindruck zu gewinnen, welche Möglichkeiten Sie
haben, folgt hier ein typisches Beispiel, das den Apache mit einem
speziellen Compiler und Compilerflags für das
Installationsverzeichnis /sk/pkg/apache
kompiliert, sowie
die beiden zusätzlichen Module mod_rewrite
und
mod_speling
für späteres Laden durch den
DSO-Mechanismus:
$ CC="pgcc" CFLAGS="-O2" \
./configure --prefix=/sw/pkg/apache \
--enable-rewrite=shared \
--enable-speling=shared
Wenn configure
startet, benötigt es mehrere
Minuten, um die Verfügbarkeit von Features auf Ihrem System zu
prüfen und ein Makefile zu generieren, das später zur
Kompilierung des Servers verwendet wird.
Einzelheiten zu den vielen verschiedenen configure
-Optionen finden Sie auf der Hilfeseite zu
configure
.
Erstellen
Nun können Sie die verschiedenen Teile, die das Apache-HTTPd-Paket bilden, einfach durch Ausführen des folgenden Befehls erstellen:
$ make
Seien Sie hierbei bitte geduldig, denn eine Basiskonfiguration benötigt mehrere Minuten zum Kompilieren. Die Zeit kann jedoch abhängig von Ihrer Hardware und der Anzahl der Module, die Sie aktiviert haben, sehr stark variieren.
Installieren
Nun endlich installieren Sie das Package unter dem konfigurierten
Installations-PREFIX (siehe oben: Option --prefix
durch Aufrufen von:
$ make install
Wenn Sie upgraden, wird die Installation Ihre Konfigurationsdateien oder Dokumente nicht überschrieben.
Anpassen
Als nächstes können Sie Ihren Apache HTTP Server anpassen,
indem Sie die Konfigurationsdateien
unterhalb von PREFIX/conf/
editieren.
$ vi PREFIX/conf/httpd.conf
Werfen Sie auch einen Blick in das Apache-HTTP-Server-Handbuch unter docs/manual/. Die aktuellste Version dieses Handbuchs sowie eine komplette Referenz der verfügbaren Konfigurationsanweisungen finden Sie unter http://httpd.apache.org/docs/2.2/.
Testen
Sie können nun Ihren Apache HTTP Server starten, indem Sie einfach
$ PREFIX/bin/apachectl -k start
ausführen.
Danach sollten Sie Ihr erstes Dokument unter dem URL
http://localhost/
anfordern können. Die Webseite,
die Sie sehen, ist im DocumentRoot
abgelegt, welches üblicherweise PREFIX/htdocs/
ist. Den Server stoppen Sie wieder durch
Ausführen von:
$ PREFIX/bin/apachectl -k stop
Upgrade
Der erste Schritt beim Aktualisieren besteht darin, die
Versionsankündigung sowie die CHANGES
-Datei in der
Quelltextdistribution zu lesen, um Änderungen zu finden, die Ihr
System möglicherweise betreffen. Wenn Sie einen größeren
Versionssprung durchführen (z.B. vom 1.3 auf 2.0 oder von 2.0 auf
2.2), wird es wahrscheinlich auch größere Unterschiede in der
Kompilier- und Laufzeitkonfiguration geben, die manuelle Nacharbeiten
erfordern. Außerdem müssen alle Module aktualisiert
werden, um den Änderungen der Modul-API gerecht zu werden.
Die Aktualisierung einer Unterversion auf eine andere (z.B. von 2.2.55
auf 2.2.57) ist einfacher. make install
überschreibt
keine der bereits existierenden Dokumente, Log- und Konfigurationsdateien.
Ausserdem bemühen sich die Entwickler, inkompatible Änderungen
der configure
-Optionen, der Laufzeitkonfiguration sowie
der Modul-API zu vermeiden. In den meisten Fällen sollten Sie in der
Lage sein, den gleichen configure
-Befehl, die gleiche
Konfiguration und die gleichen Module wieder zu verwenden.
Um auf eine neue Unterversion zu aktualisieren, suchen Sie zunächst
die Datei config.nice
im build
-Verzeichnis
Ihrer Serverinstallation oder im Wurzelverzeichnis des Quelltextbaums
der alten Installation. Die Datei enthält den genauen
configure
-Befehl, der verwendet wurde, um den
Quellcode zu konfigurieren. Um jetzt von einer Version auf die
nächste zu aktualisieren, kopieren Sie einfach die
config.nice
in das Verzeichnis der neuen Version,
passen sie bei Bedarf an, und führen Sie sie aus:
$ ./config.nice
$ make
$ make install
$ PREFIX/bin/apachectl -k graceful-stop
$ PREFIX/bin/apachectl -k start
--prefix
und einen anderen Port wählen (durch Anpassen der
Listen
-Direktive). So
können Sie auf eventuelle Inkompatibilitäten testen, bevor Sie
endgültig die neue Version verwenden.