install.xml.de revision b45563a529f9dba59dfac82ff5a53f1d63ed5ea5
<?xml version='1.0' encoding='UTF-8' ?>
<!-- English revision: 1.13 -->
<manualpage>
<relativepath href="."/>
<title>Kompilieren und Installieren</title>
<summary>
<p>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 <a
href="platform/windows.html">Den Apache unter Microsoft Windows
betreiben</a>. Für andere Plattformen lesen Sie bitte die
Dokumentation <a href="platform/">Plattformen</a>.</p>
<p>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
<code>libtool</code> und <code>autoconf</code>, um eine Umgebung zu
schaffen, die der vieler anderer Open Source Projekte ähnlich
sieht.</p>
</summary>
<section id="overview"><title>Überblick für die Ungeduldigen</title>
<table>
<tr>
<td><a href="#download">Download</a></td>
<td><code>$ lynx
</td>
</tr>
<tr>
<td><a href="#extract">Auspacken</a></td>
$ tar xvf httpd-2_1_<em>NN</em>.tar</code> </td>
</tr>
<tr>
<td><a href="#configure">Konfigurieren</a></td>
</td>
</tr>
<tr>
<td><a href="#compile">Kompilieren</a></td>
<td><code>$ make</code> </td>
</tr>
<tr>
<td><a href="#install">Installieren</a></td>
<td><code>$ make install</code> </td>
</tr>
<tr>
<td><a href="#customize">Anpassen</a></td>
</tr>
<tr>
<td><a href="#test">Testen</a></td>
</td>
</tr>
</table>
<p><em>NN</em> muss durch die Nummer der Unterversion ersetzt werden,
und <em>PREFIX</em> durch den Verzeichnispfad,
in dem der Server installiert werden soll. Wenn <em>PREFIX</em> nicht
verwendet.</p>
<p>Beginnend mit den Anforderungen
für die Kompilierung und Installation des Apache HTTPD ist
weiter unten jeder Abschnitt des Kompilierungs- und
Installationsvorganges genauer beschrieben.</p>
</section>
<section id="requirements"><title>Anforderungen</title>
<p>Folgende Anforderungen gelten für die Erstellung des
Apache:</p>
<dl>
<dt>Plattenplatz</dt>
<dd>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.</dd>
<dt>ANSI-C-Compiler und Generierungswerkzeuge</dt>
<dd>Stellen Sie sicher, dass Sie einen ANSI-C Compiler installiert
haben. Der <a href="http://www.gnu.org/software/gcc/gcc.html">GNU C
Foundation (FSF)</a> ist empfehlenswert (Version 2.7.2 ist gut). Wenn
Sie den GCC nicht besitzen, stellen Sie zumindest sicher, dass der
Compiler Ihres Anbieters ANSI-kompatibel ist. Außerdem muss Ihr
<code>PATH</code> wesentliche Generierungswerkzeuge wie
<code>make</code> enthalten.</dd>
<dt>Zeitgenauigkeit bewahren</dt>
<dd>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 <code>ntpdate</code> oder <code>xntpd</code> verwendet,
die auf dem Network Time Protocol (NTP) basieren. Nähere
Informationen über NTP Software und öffentliche Zeitserver
finden Sie in der Usenet Newsgroup <a
und auf der <a href="http://www.eecis.udel.edu/~ntp/">NTP
Homepage</a>.</dd>
[OPTIONAL]</dt>
<dd>Für einige Pflegeprogramme wie <a
geschrieben sind) wird der Perl 5 Interpreter benötigt (die
Versionen ab 5.003 sind ausreichend). Wenn kein derartiger Interpreter
vom '<code>configure</code>'-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
<code>--with-perl</code> Option (siehe unten) empfehlenswert, um
sicherzustellen, dass der richtige Interpreter von
</dl>
</section>
<section id="download"><title>Download</title>
<p>Der Apache kann von der <a
href="http://httpd.apache.org/download.cgi">Apache HTTP Server
Downloadseite</a> heruntergeladen werden, auf der verschiedene
Spiegelserver angegeben sind. Sie finden hier die jeweils aktuelle
stabile Version.</p>
<p>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 <code>KEYS</code>-Datei ebenfalls von der <a
href="http://httpd.apache.org/download.cgi">Apache HTTP
Server Downloadseite</a> beziehen. (Um sicherzustellen, dass die
<code>KEYS</code>-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:</p>
<example>$ pgp < KEYS</example>
<p>oder </p>
<example>$ gpg --import KEYS</example>
<p>Der nächste Schritt ist das Testen des Tarballs gegen
die PGP-Signatur, die immer von der <a
href="http://httpd.apache.org/download.cgi">Apache
Originalseite</a> bezogen werden sollte. Die Signaturdatei hat den
gleichen Dateinamen wie der Tarball, aber zusätzlich die
Endung <code>.asc</code>. Nun können Sie die Distribution mit
einem der folgenden Befehle (wiederum abhängig von Ihrer PGP
Version) prüfen:</p>
<p>oder</p>
<p>Sie sollten eine Meldung wie</p>
<example>Good signature from user "Martin Kraemer
<martin@apache.org>".</example>
<p>erhalten.</p>
<p>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 <code>KEYS</code>-Datei
vertrauen, ist dies kein Problem.</p>
</section>
<section id="extract"><title>Auspacken</title>
<p>Das Auspacken des Quellcodes aus dem Apache HTTPD Tarball besteht
aus einem simplen Dekomprimieren und danach "Ent-tarren":</p>
<example>
$ tar xvf httpd-2_1_<em>NN</em>.tar
</example>
<p>Dies erstellt unterhalb des aktuellen Verzeichnisses ein neues
Verzeichnis, das den Quellcode für die Distribution enthält.
Sie sollten mit <code>cd</code> in dieses Verzeichnis wechseln,
bevor Sie mit der Kompilierung des Servers weitermachen. </p>
</section>
<section id="configure"><title>Den Codebaum konfigurieren</title>
<p>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
<code>configure</code> durchgeführt, das im Wurzelverzeichnis
der Distribution enthalten ist. (Entwickler, welche die CVS Version
des Apache-Codebaumes herunterladen, müssen <code>autoconf</code>
und <code>libtool</code> installiert haben und müssen
<code>buildconf</code> ausführen, bevor sie mit den
nächsten Schritten fortfahren können. Dies wird bei
offiziellen Releases nicht notwendig sein.)</p>
<p>Um den Codebaum mit den Standardeinstellungen zu konfigurieren,
dieser Voreinstellungen akzeptiert <code>configure</code> eine
Reihe von Variablen und Kommandozeilenoptionen. Umgebungsvariablen
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.</p>
<p>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
die beiden zusätzlichen Module <module>mod_rewrite</module> und
<module>mod_speling</module> für späteres Laden durch den
DSO-Mechanismus:</p>
<example>
$ CC="pgcc" CFLAGS="-O2" \<br />
--enable-rewrite=shared \<br />
--enable-speling=shared
</example>
<p>Wenn <code>configure</code> 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.</p>
<p>Die einfachste Art und Weise, alle Konfigurationsflags für den
Hier folgt eine kurze Beschreibung der meisten Argumente und
Umgebungsvariablen.</p>
<section id="environment"><title>Umgebungsvariablen</title>
<p>Der <code>autoconf</code>-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
<code>configure</code> im Environment gesetzt werden, doch es ist
üblicherweise einfacher, sie in der
<code>configure</code>-Befehlszeile, wie im obigen Beispiel gezeigt,
anzugeben.</p>
<dl>
<dt><code>CC=...</code></dt>
<dd>Der Name des C-Compiler-Kommandos.</dd>
<dt><code>CPPFLAGS=...</code></dt>
<dd>Verschiedene C-Präprozessor- und Compileroptionen.</dd>
<dt><code>CFLAGS=...</code></dt>
<dd>Debug- und Optimierungsoptionen für den C-Compiler.</dd>
<dt><code>LDFLAGS=...</code></dt>
<dd>Verschiedene Optionen, die an den Linker durchgereicht
werden.</dd>
<dt><code>LIBS=...</code></dt>
<dd>Informationen über den Ablageort von Libraries
("<code>-L</code>" und "<code>-l</code>" Optionen), die
an den Linker durchgereicht werden.</dd>
<dt><code>INCLUDES=...</code></dt>
<dd>Suchverzeichnisse für Header-Dateien
("<code>-I<em>Verzeichnis</em></code>").</dd>
<dt><code>TARGET=...</code> [Default: <code>apache</code>]</dt>
<dd>Name der lauffähigen Datei, die erstellt wird.</dd>
<dt><code>NOTEST_CPPFLAGS=...</code></dt>
<dt><code>NOTEST_CFLAGS=...</code></dt>
<dt><code>NOTEST_LDFLAGS=...</code></dt>
<dt><code>NOTEST_LIBS=...</code></dt>
<dd>Diese Variablen haben die gleiche Funktion wie ihre
Namensvettern ohne <code>NOTEST</code>. 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.</dd>
<dt><code>SHLIB_PATH=...</code></dt>
<dd>Eine Option, die den Pfad zu Libraries angibt, welche sich
Compiler und Linker teilen.</dd>
</dl>
</section>
<section id="output"><title>autoconf Ausgabeoptionen</title>
<dl>
<dt><code>--help</code></dt>
<dd>Gibt die Nutzungsinformationen einschließlich aller
verfügbaren Optionen aus, ohne jedoch tatsächlich etwas zu
konfigurieren.</dd>
<dt><code>--quiet</code></dt>
<dd>Verhindert die Ausgabe der üblichen "<code>checking...</code>"
Nachrichten.</dd>
<dt><code>--verbose</code></dt>
<dd>Gibt während des Konfigurationsprozesses weitergehende
Informationen aus, einschließlich der Namen aller untersuchter
Dateien.</dd>
</dl>
</section>
<section id="pathnames"><title>Pfadangaben</title>
<p>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.</p>
<dl>
<dt><code>--prefix=<em>PREFIX</em></code> [Default:
<dd>Gibt das Verzeichnis an, in dem die Apache-Dateien
installiert werden.</dd>
</dl>
<p>Es ist möglich, anzugeben, dass Architektur-abhängige
Dateien in einem anderen Verzeichnis abgelegt werden sollen.</p>
<dl>
<dt><code>--exec-prefix=<em>EPREFIX</em></code> [Default:
<code><em>PREFIX</em></code>]</dt>
<dd>Gibt das Verzeichnis an, in dem Architektur-abhängige Dateien
abgelegt werden.</dd>
</dl>
<p>Die zweite und flexiblere Weise, den Installationspfad für den
Apache einzustellen, ist die Verwendung der Datei
Sie den Ablageort für jeden Dateityp innerhalb der
Apache-Installation separat angeben. Die Datei
Konfigurationsbeispiele. Sie können auch anhand der Beispiele Ihre
eigene individuelle Konfiguration erstellen. Die verschiedenen
Layouts in dieser Datei sind gruppiert in <code><Layout
FOO>...</Layout></code>-Abschnitte und
werden mit Namen wie <code>FOO</code> bezeichnet.</p>
<dl>
<dt><code>--enable-layout=<em>LAYOUT</em></code></dt>
<dd>Verwendet das genannte Layout aus der Datei
anzugeben.</dd>
</dl>
</section>
<section id="modules"><title>Module</title>
<p>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
<a href="mod/">Liste von Modulen</a> ist in dieser
Dokumentation enthalten. Module mit dem <a
href="mod/module-dict.html#Status">Status</a> "Base"
sind standardmäßig enthalten und müssen ausdrücklich
nicht verwenden möchten. Module mit einem anderen Status (z.B.
<module>mod_expires</module>) müssen ausdrücklich aktiviert
werden, wenn Sie sie verwenden möchten.</p>
<p>Es gibt zwei Möglichkeiten, Module zu kompilieren und mit dem
Apache zu benutzen. Module können <em>statisch kompiliert</em>
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 <code>autoconf</code> diese Unterstützung
erkennen kann, dann können Module alternativ <em>dynamisch
kompiliert</em> werden. DSO-Module werden von der Apache Binary getrennt
gespeichert und können vom Server unter Verwendung der Direktiven
zur Laufzeitkonfiguration, die von <module>mod_so</module>
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
<code>--enable-so</code> angeben.</p>
<dl>
<dt><code>--enable-<em>MODULE</em>[=shared]</code></dt>
<dd>Kompiliert das Modul <em>MODUL</em> und bindet es ein.
Das Kennzeichen <em>MODUL</em> ist der <a
href="mod/module-dict.html#ModuleIdentifier">Modul-Bezeichner</a>
aus der Dokumentation zum jeweiligen Modul, jedoch ohne den
Namensteil "_module". Um ein Modul als DSO zu kompilieren,
fügen Sie die Option <code>=shared</code> hinzu.</dd>
<dt><code>--disable-<em>MODULE</em></code></dt>
<dd>Entfernt das Modul <em>MODUL</em>, das andernfalls
kompiliert und eingebunden werden würde.</dd>
<dt><code>--enable-modules=<em>MODUL-LISTE</em></code></dt>
<dd>Kompiliert die durch Leerzeichen getrennte Liste
<em>MODUL-LISTE</em> von Modulen und bindet sie ein.</dd>
<dt><code>--enable-mods-shared=<em>MODUL-LISTE</em></code></dt>
<dd>Kompiliert die durch Leerzeichen getrennte Liste
<em>MODUL-LISTE</em> von Modulen als dynamisch ladbare (DSO)
Module und bindet sie ein.</dd>
</dl>
<p>Die <em>MODUL-LISTE</em> in den Optionen
<code>--enable-modules</code> und <code>--enable-mods-shared</code>
ist üblicherweise eine durch Leerzeichen getrennte Liste von
Modul-Bezeichnern. Zum Beispiel können zum Aktivieren von
<module>mod_dav</module> und <module>mod_info</module> beide
benutzt werden, sowohl</p>
<p>oder äquivalent</p>
<p>Zusätzlich können die speziellen Schlüsselwörter
<code>all</code> oder <code>most</code> 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
<code>--disable-<em>MODUL</em></code> entfernen. Um beispielsweise alle
Module mit Ausnahme von <module>mod_info</module> als DSOs einzubinden,
können Sie</p>
<example>
/configure --enable-mods-shared=all
--disable-info
</example>
<p>verwenden.</p>
<p>Zusätzlich zum Standard-Set von Modulen fügt der Apache 2.0
(MPMs) ein. Ein, und nur ein einziges, MPM muss in den
Kompilierungsprozess eingebunden werden. Das voreingestellte MPM jeder
aufgeführt, kann jedoch mit der <code>configure</code>-Kommandozeile
überschrieben werden.</p>
<dl>
<dt><code>--with-mpm=<em>NAME</em></code></dt>
<dd>Wählt das MPM <em>NAME</em>.</dd>
</dl>
</section>
<section id="dbm"><title>DBM</title>
<p>Verschiedene Apache-Features, darunter <module>mod_authn_dbm</module>
und DBM <directive module="mod_rewrite">RewriteMap</directive> aus
<module>mod_rewrite</module>, 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
<code>configure</code>-Optionen dazu verwenden:</p>
<dl>
<dt><code>--with-gdbm[=<em>Pfad</em>]</code></dt>
<dt><code>--with-ndbm[=<em>Pfad</em>]</code></dt>
<dt><code>--with-berkeley-db[=<em>Pfad</em>]</code></dt>
<dd>Wenn kein <em>Pfad</em> angegeben ist, sucht der Apache in den
normalen Suchpfaden nach den Include- und Bibliothek-Dateien. Eine
explizite <em>Pfad</em>-Angabe veranlasst den Apache, in
<em>Pfad</em><code>/lib</code> und <em>Pfad</em><code>/include</code>
nach relevanten Dateien zu suchen. Letztlich kann <em>Pfad</em>
auch die speziellen Include- und Bibliothek-Pfade durch Doppelpunkt
getrennt auflisten.</dd>
</dl>
</section>
<section id="suexec"><title>Suexec</title>
<p>Der Apache enthält ein Hilfsprogramm namens <a
href="suexec.html">suexec</a>, das zur Isolation benutzereigener
CGI-Programme verwendet werden kann. Wenn suexec jedoch
unsachgemäß konfiguriert wurde, kann es schwere
Sicherheitsprobleme verursachen. Deshalb sollten Sie die
und beachten, bevor Sie dieses Feature implementieren.
</p>
</section>
</section>
<section id="compile"><title>Erstellen</title>
<p>Nun können Sie die verschiedenen Teile, die das Apache-Paket
bilden, einfach durch Ausführen des folgenden Befehls erstellen:</p>
<example>$ make</example>
<p>Seien Sie hierbei bitte geduldig, denn eine Basiskonfiguration
System. Dies kann aber abhängig von Ihrer Hardware und der Anzahl
der Module, die Sie aktiviert haben, sehr stark variieren.</p>
</section>
<section id="install"><title>Installieren</title>
<p>Nun endlich installieren Sie das Package unter dem konfigurierten
Installations-<em>PREFIX</em> (siehe oben: Option <code>--prefix</code>
durch Aufrufen von:</p>
<example>$ make install</example>
<p>Wenn Sie upgraden, wird die Installation Ihre Konfigurationsdateien
oder Dokumente nicht überschrieben.</p>
</section>
<section id="customize"><title>Anpassen</title>
<p>Als nächstes können Sie Ihren Apache HTTP Server anpassen,
unterhalb von <code><em>PREFIX</em>/conf/</code> editieren.</p>
<p>Werfen Sie auch einen Blick in das Apache-Handbuch unter <a
sowie eine komplette Referenz der verfügbaren <a
href="mod/directives.html">Konfigurationsanweisungen</a> finden
Sie unter <a href="http://httpd.apache.org/docs-2.1/"
</section>
<section id="test"><title>Testen</title>
<p>Sie können nun Ihren Apache HTTP Server <a
<p>ausführen.</p>
<p>Danach sollten Sie Ihr erstes Dokument unter dem URL
die Sie sehen, ist im <directive module="core">DocumentRoot</directive>
abgelegt, welches üblicherweise <code><em>PREFIX</em>/htdocs/</code>
Ausführen von:</p>
</section>
</manualpage>