Apache HTTP Server Version 2.0
Dieses Dokument umfa�t nur die Kompilierung und Installation des Apache auf Unix und Unix-�hnlichen Systemen. F�r die Kompilierung und Installation unter Windows lesen Sie bitte Den Apache unter Microsoft Windows betreiben. F�r andere Plattformen lesen Sie bitte die Dokumentation Plattformen.
Die Konfigurations- und Installationsumgebung des Apache 2.0 hat sich
seit dem Apache 1.3 komplett ver�ndert. Der Apache 1.3 benutzt einen
speziellen Satz von Skripten, um eine einfache Installation zu
erm�glichen. Der Apache 2.0 dagegen verwendet nun
libtool
und autoconf
, um eine Umgebung zu
schaffen, die der vieler anderer Open Source Projekte �hnlich
sieht.
Download | $ lynx
http://www.apache.org/dist/httpd/httpd-2_0_NN.tar.gz
|
Auspacken | $ gzip -d httpd-2_0_NN.tar.gz |
Konfigurieren | $ ./configure --prefix=PREFIX
|
Kompilieren | $ make |
Installieren | $ make install |
Anpassen | $ vi PREFIX/conf/httpd.conf |
Testen | $ PREFIX/bin/apachectl start
|
NN muss durch die Nummer der Unterversion 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 HTTPD ist weiter unten jeder Abschnitt des Kompilierungs- und Installationsvorganges genauer beschrieben.
Folgende Anforderungen gelten f�r die Erstellung des Apache:
PATH
wesentliche Generierungswerkzeuge wie
make
enthalten.ntpdate
oder xntpd
verwendet,
die auf dem Network Time Protocol (NTP) basieren. N�here
Informationen �ber NTP Software und �ffentliche Zeitserver
finden Sie in der Usenet Newsgroup comp.protocols.time.ntp
und auf der NTP
Homepage.configure
'-Skript gefunden werden kann, macht das
jedoch nichts. Selbstverst�ndlich k�nnen Sie den Apache 2.0
auch so generieren und installieren. Lediglich diese Pflegeskripte
k�nnen dann nicht verwendet werden. Wenn Sie mehrere Perl
Interpreter installiert haben (vielleicht Perl 4 durch Ihren
H�ndler und Perl 5 durch Sie selbst), dann ist die Verwendung der
--with-perl
Option (siehe unten) empfehlenswert, um
sicherzustellen, dass der richtige Interpreter von
./configure
ausgew�hlt wird.Der Apache kann von der Apache HTTP Server Downloadseite heruntergeladen werden, auf der verschiedene Spiegelserver angegeben sind. Sie finden hier die jeweils aktuelle stabile Version.
Nach dem Download, insbesondere, wenn ein Mirror benutzt wurde, ist es
wichtig, zu pr�fen, dass Sie eine vollst�ndige, nicht
modifizierte Version des Apache HTTP Servers erhalten haben. Dies kann
durch Pr�fen des heruntergeladenen Tarballs gegen die PGP-Signatur
erreicht werden. Dies ist wiederum ein Zweischrittverfahren. Zuerst
m�ssen Sie die
KEYS
-Datei ebenfalls von der Apache
Distributionsseite beziehen. (Um sicherzustellen, dass die
KEYS
-Datei selbst nicht ver�ndert wurde, ist
es sinnvoll, eine Datei aus einer fr�heren Distribution des
Apache zu verwenden, oder den Schl�ssel von einem �ffentlichen
Schl�sselserver zu importieren.) Die Schl�ssel werden mit einem
der folgenden Befehle (abh�ngig von Ihrer PGP Version) zu Ihrem
pers�nlichen Schl�sselring hinzugef�gt:
$ pgp < KEYS
oder
$ gpg --import KEYS
Der n�chste Schritt ist das Testen des Tarballs gegen
die PGP-Signatur, die immer von der Apache Originalseite
bezogen werden sollte. Den Link zur Signaturdatei finden Sie hinter
dem jeweiligen Download-Link oder im entsprechenden Verzeichnis auf der
Apache-Distributionsseite
Sie hat den gleichen Dateinamen wie der Tarball, aber zus�tzlich die
Endung .asc
. Nun k�nnen Sie die Distribution mit
einem der folgenden Befehle (wiederum abh�ngig von Ihrer PGP
Version) pr�fen:
$ pgp httpd-2_0_NN.tar.gz.asc
oder
$ gpg --verify httpd-2_0_NN.tar.gz.asc
Sie sollten eine Meldung wie
Good signature from user "Martin Kraemer
<[email protected]>".
erhalten.
Abh�ngig von den Vertrauensbeziehungen in Ihrem
Schl�sselring k�nnen Sie auch eine Meldung erhalten, die
besagt, dass die Beziehungen zwischen dem Schl�ssel und dem
Unterzeichner des Schl�ssels nicht verifiziert werden k�nnen.
Solange Sie der Authentizit�t der KEYS
-Datei
vertrauen, ist dies kein Problem.
Das Auspacken des Quellcodes aus dem Apache HTTPD Tarball besteht aus einem simplen Dekomprimieren und danach "Ent-tarren":
$ gzip -d httpd-2_1_NN.tar.gz
$ tar xvf httpd-2_1_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.
Der n�chste Schritt ist die Konfiguration des
Apache-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 die CVS Version
des Apache-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. Umgebungsvariablen
werden �blicherweise vor den ./configure
-Befehl gesetzt,
w�hrend andere Optionen danach gesetzt werden. Die wichtigste Option
hierbei ist der vorangestellte Ablageort, unter dem der Apache sp�ter
installiert wird, denn der Apache muss auf diesen Ablageort eingestellt
werden, um korrekt zu arbeiten. Es gibt jedoch noch eine Reihe weiterer
Optionen f�r Ihre pers�nlichen W�nsche.
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.
Die einfachste Art und Weise, alle Konfigurationsflags f�r den
Apache herauszufinden, ist, ./configure --help
aufzurufen.
Hier folgt eine kurze Beschreibung der meisten Argumente und
Umgebungsvariablen.
Der autoconf
-Generierungsvorgang verwendet verschiedene
Umgebungsvariablen f�r die Konfiguration der Generierungsumgebung.
Im allgemeinen ver�ndern diese Variablen die Methode, die benutzt
wird, um den Apache zu erstellen, nicht aber die letztendlichen
Features des Servers. Diese Variablen k�nnen vor dem Aufruf von
configure
im Environment gesetzt werden, doch es ist
�blicherweise einfacher, sie in der
configure
-Befehlszeile, wie im obigen Beispiel gezeigt,
anzugeben.
CC=...
CPPFLAGS=...
CFLAGS=...
LDFLAGS=...
LIBS=...
-L
" und "-l
" Optionen), die
an den Linker durchgereicht werden.INCLUDES=...
-IVerzeichnis
").TARGET=...
[Default: apache
]NOTEST_CPPFLAGS=...
NOTEST_CFLAGS=...
NOTEST_LDFLAGS=...
NOTEST_LIBS=...
NOTEST
. Diese Variablen werden jedoch
nur auf den Generierungsprozess angewendet, nachdem autoconf seine
Featuretests durchgef�hrt hat. Dies erlaubt die Einbeziehung
von Flags, die w�hrend des Featuretests Probleme bereiten
w�rden, aber f�r die endg�ltige Kompilierung verwendet
werden m�ssen.SHLIB_PATH=...
--help
--quiet
checking...
"
Nachrichten.--verbose
Gegenw�rtig existieren zwei M�glichkeiten, die Pfade zu konfigurieren, in denen der Apache seine Dateien installiert. Bei der ersten k�nnen Sie ein Verzeichnis angeben und den Apache veranlassen, sich selbst unterhalb dieses Verzeichnisses in seinen voreingestellten Ablageorten zu installieren.
--prefix=PREFIX
[Default:
/usr/local/apache2
]Es ist m�glich, anzugeben, dass Architektur-abh�ngige Dateien in einem anderen Verzeichnis abgelegt werden sollen.
--exec-prefix=EPREFIX
[Default:
PREFIX
]Die zweite und flexiblere Weise, den Installationspfad f�r den
Apache einzustellen, ist die Verwendung der Datei
config.layout
. Wenn Sie diese Methode benutzen, k�nnen
Sie den Ablageort f�r jeden Dateityp innerhalb der
Apache-Installation separat angeben. Die Datei
config.layout
enth�lt verschiedene
Konfigurationsbeispiele. Sie k�nnen auch anhand der Beispiele Ihre
eigene individuelle Konfiguration erstellen. Die verschiedenen
Layouts in dieser Datei sind gruppiert in <Layout
FOO>...</Layout>
-Abschnitte und
werden mit Namen wie FOO
bezeichnet.
--enable-layout=LAYOUT
config.layout
, um die Installationspfade genau
anzugeben.Der Apache ist ein modularer Server. Nur die grundlegendste
Funktionalit�t ist im Kernserver enthalten. Erweiternde Features
stehen in verschiedenen Modulen bereit. W�hrend des
Konfigurationsprozesses m�ssen Sie ausw�hlen, welche Module
f�r die Verwendung mit Ihrem Server kompiliert werden sollen. Eine
Liste von Modulen ist in dieser
Dokumentation enthalten. Module mit dem Status "Base"
sind standardm��ig enthalten und m�ssen ausdr�cklich
deaktiviert werden (z.B. mod_userdir
), wenn Sie sie
nicht verwenden m�chten. Module mit einem anderen Status (z.B.
mod_expires
) m�ssen ausdr�cklich aktiviert
werden, wenn Sie sie verwenden m�chten.
Es gibt zwei M�glichkeiten, Module zu kompilieren und mit dem
Apache zu benutzen. Module k�nnen statisch kompiliert
werden, was bedeutet, dass sie permanent in dem Apache Binary
eingebunden sind. Wenn Ihr Betriebssystem Dynamic Shared Objects
(DSOs; Anm. d. �bersetzers: dynamisch eingebundene Bibliotheken)
unterst�tzt und autoconf
diese Unterst�tzung
erkennen kann, dann k�nnen Module alternativ dynamisch
kompiliert werden. DSO-Module werden von der Apache Binary getrennt
gespeichert und k�nnen vom Server unter Verwendung der Direktiven
zur Laufzeitkonfiguration, die von mod_so
bereitgestellt werden, ein- oder ausgeschlossen werden. mod_so wird
automatisch dem Server hinzugef�gt, sobald ein dynamisches Modul
in die Kompilierung einbezogen wird. Wenn Sie Ihren Server f�r das
Laden von DSOs tauglich machen wollen, ohne jedoch ein dynamisches Modul
zu kompilieren, k�nnen Sie dies explizit mit
--enable-so
angeben.
--enable-MODULE[=shared]
=shared
hinzu.--disable-MODULE
--enable-modules=MODUL-LISTE
--enable-mods-shared=MODUL-LISTE
Die MODUL-LISTE in den Optionen
--enable-modules
und --enable-mods-shared
ist �blicherweise eine durch Leerzeichen getrennte Liste von
Modul-Bezeichnern. Zum Beispiel k�nnen zum Aktivieren von
mod_dav
und mod_info
beide
benutzt werden, sowohl
./configure --enable-dav --enable-info
oder �quivalent
./configure --enable-modules="dav info"
Zus�tzlich k�nnen die speziellen Schl�sselw�rter
all
oder most
benutzt werden, um alle oder
die meisten der Module in einem Schritt hinzuzuf�gen. Sie
k�nnen Module, die Sie nicht benutzen m�chten, mit der Option
--disable-MODUL
entfernen. Um beispielsweise alle
Module mit Ausnahme von mod_info
als DSOs einzubinden,
k�nnen Sie
./configure --enable-mods-shared=all
--disable-info
verwenden.
Zus�tzlich zum Standard-Set von Modulen f�gt der Apache 2.0
auch eine Auswahl von Multi-Processing Modulen
(MPMs) ein. Ein, und nur ein einziges, MPM muss in den
Kompilierungsprozess eingebunden werden. Das voreingestellte MPM jeder
Plattform ist in der MPM Dokumentation
aufgef�hrt, kann jedoch mit der configure
-Kommandozeile
�berschrieben werden.
--with-mpm=NAME
Um ein MPM mit dem Namen mpm_name zu aktivieren, verwenden Sie
./configure --with-mpm=mpm_name
Verschiedene Apache-Features, darunter mod_auth_dbm
und DBM RewriteMap
aus
mod_rewrite
, verwenden einfache
Schl�ssel/Wert-Datenbanken f�r eine schnelle Suche nach
Informationen. Der Apache-Quellcode enth�lt SDBM, so dass
diese Datenbank immer verf�gbar ist. Wenn Sie einen anderen
Datenbanktyp benutzen m�chten, k�nnen Sie die folgenden
configure
-Optionen dazu verwenden:
--with-gdbm[=Pfad]
--with-ndbm[=Pfad]
--with-berkeley-db[=Pfad]
/lib
und Pfad/include
nach relevanten Dateien zu suchen. Letztlich kann Pfad
auch die speziellen Include- und Bibliothek-Pfade durch Doppelpunkt
getrennt auflisten.Der Apache enth�lt ein Hilfsprogramm namens suexec, das zur Isolation benutzereigener CGI-Programme verwendet werden kann. Wenn suexec jedoch unsachgem�� konfiguriert wurde, kann es schwere Sicherheitsprobleme verursachen. Deshalb sollten Sie die suexec Dokumentation sorgf�ltig lesen und beachten, bevor Sie dieses Feature implementieren.
Nun k�nnen Sie die verschiedenen Teile, die das Apache-Paket bilden, einfach durch Ausf�hren des folgenden Befehls erstellen:
$ make
Seien Sie hierbei bitte geduldig, denn eine Basiskonfiguration ben�tigt ungef�hr 3 Minuten auf einem Pentium III/Linux 2.2. System. Dies kann aber abh�ngig von Ihrer Hardware und der Anzahl der Module, die Sie aktiviert haben, sehr stark variieren.
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.
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-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.0/.
Sie k�nnen nun Ihren Apache HTTP Server starten, indem Sie einfach
$ PREFIX/bin/apachectl 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 stop