install.xml.de revision d771eceb899b21658c95cd16e7f10080801f48a3
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE manualpage SYSTEM "/style/manualpage.dtd">
<?xml-stylesheet type="text/xsl" href="/style/manual.de.xsl"?>
<!-- English revision: 1.24 -->
<!--
Copyright 2002-2004 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<manualpage metafile="install.xml.meta">
<title>Kompilieren und Installieren</title>
<summary>
<p>Dieses Dokument umfa&#223;t nur die Kompilierung und Installation des
Apache auf Unix und Unix-&#228;hnlichen Systemen. F&#252;r die
Kompilierung und Installation unter Windows lesen Sie bitte <a
href="platform/windows.html">Den Apache unter Microsoft Windows
betreiben</a>. F&#252;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&#228;ndert. Der Apache 1.3 benutzt einen
speziellen Satz von Skripten, um eine einfache Installation zu
erm&#246;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 &#228;hnlich
sieht.</p>
<p>Wenn Sie von einer Unterversion auf die n&auml;chste aktualisieren (z.B. von
2.0.50 auf 2.0.51), springen Sie bitte zum Abschnitt <a
href="#upgrading">Upgrade</a>.</p>
</summary>
<seealso><a href="invoking.html">Apache starten</a></seealso>
<seealso><a href="stopping.html">Beenden und Neustarten</a></seealso>
<section id="overview"><title>&#220;berblick f&#252;r die Ungeduldigen</title>
<table>
<columnspec><column width=".13"/><column width=".80"/></columnspec>
<tr>
<td><a href="#download">Download</a></td>
<td><code>$ lynx http://httpd.apache.org/download.cgi</code>
</td>
</tr>
<tr>
<td><a href="#extract">Auspacken</a></td>
<td><code>$ gzip -d httpd-2_1_<em>NN</em>.tar.gz<br />
$ tar xvf httpd-2_1_<em>NN</em>.tar</code> </td>
</tr>
<tr>
<td><a href="#configure">Konfigurieren</a></td>
<td><code>$ /configure --prefix=<em>PREFIX</em></code>
</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>
<td><code>$ vi <em>PREFIX</em>/conf/httpd.conf</code> </td>
</tr>
<tr>
<td><a href="#test">Testen</a></td>
<td><code>$ <em>PREFIX</em>/bin/apachectl start</code>
</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
angegeben ist, wird die Voreinstellung <code>/usr/local/apache2</code>
verwendet.</p>
<p>Beginnend mit den Anforderungen
f&#252;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&#252;r die Erstellung des
Apache:</p>
<dl>
<dt>Plattenplatz</dt>
<dd>Stellen Sie sicher, dass Sie kurzzeitig wenigstens 50 MB freien
Festplattenplatz zur Verf&#252;gung haben. Nach der Installation
belegt der Apache ungef&#228;hr 10 MB Plattenplatz. Der
tats&#228;chliche Platzbedarf variiert in Abh&#228;ngigkeit von den
gew&#228;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
Compiler (GCC)</a> der <a href="http://www.gnu.org/">Free Software
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&#223;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&#252;ckt. Darum sollten Sie jetzt pr&#252;fen, ob Ihr System
die F&#228;higkeit zur Zeitsynchronisation besitzt, und diese
gegebenenfalls installieren. &#220;blicherweise werden hierf&#252;r
die Programme <code>ntpdate</code> oder <code>xntpd</code> verwendet,
die auf dem Network Time Protocol (NTP) basieren. N&#228;here
Informationen &#252;ber NTP Software und &#246;ffentliche Zeitserver
finden Sie in der Usenet Newsgroup <a
href="news:comp.protocols.time.ntp">comp.protocols.time.ntp</a>
und auf der <a href="http://www.eecis.udel.edu/~ntp/">NTP
Homepage</a>.</dd>
<dt><a href="http://www.perl.org/">Perl 5</a>
[OPTIONAL]</dt>
<dd>F&#252;r einige Pflegeprogramme wie <a
href="programs/apxs.html">apxs</a>
oder <a href="programs/dbmmanage.html">dbmmanage</a> (die in Perl
geschrieben sind) wird der Perl 5 Interpreter ben&#246;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&#228;ndlich k&#246;nnen Sie den Apache 2.0
auch so generieren und installieren. Lediglich diese Pflegeskripte
k&#246;nnen dann nicht verwendet werden. Wenn Sie mehrere Perl
Interpreter installiert haben (vielleicht Perl 4 durch Ihren
H&#228;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
<code>/configure</code> ausgew&#228;hlt wird.</dd>
</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&#252;fen, dass Sie eine vollst&#228;ndige, nicht
modifizierte Version des Apache HTTP Servers erhalten haben. Dies kann
durch Pr&#252;fen des heruntergeladenen Tarballs gegen die PGP-Signatur
erreicht werden. Dies ist wiederum ein Zweischrittverfahren. Zuerst
m&#252;ssen Sie die <a href="http://www.apache.org/dist/httpd/KEYS">
<code>KEYS</code></a>-Datei ebenfalls von der Apache
Distributionsseite beziehen. (Um sicherzustellen, dass die
<code>KEYS</code>-Datei selbst nicht ver&#228;ndert wurde, ist
es sinnvoll, eine Datei aus einer fr&#252;heren Distribution des
Apache zu verwenden, oder den Schl&#252;ssel von einem &#246;ffentlichen
Schl&#252;sselserver zu importieren.) Die Schl&#252;ssel werden mit einem
der folgenden Befehle (abh&#228;ngig von Ihrer PGP Version) zu Ihrem
pers&#246;nlichen Schl&#252;sselring hinzugef&#252;gt:</p>
<example>$ pgp &lt; KEYS</example>
<p>oder </p>
<example>$ gpg --import KEYS</example>
<p>Der n&auml;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. Den Link zur Signaturdatei finden Sie hinter
dem jeweiligen Download-Link oder im entsprechenden Verzeichnis auf der
<a href="http://www.apache.org/dist/httpd/">Apache-Distributionsseite</a>
Sie hat den gleichen Dateinamen wie der Tarball, aber zus&auml;tzlich die
Endung <code>.asc</code>. Nun k&ouml;nnen Sie die Distribution mit
einem der folgenden Befehle (wiederum abh&auml;ngig von Ihrer PGP
Version) pr&uuml;fen:</p>
<example>$ pgp httpd-2_1_<em>NN</em>.tar.gz.asc</example>
<p>oder</p>
<example>$ gpg --verify httpd-2_1_<em>NN</em>.tar.gz.asc</example>
<p>Sie sollten eine Meldung wie</p>
<example>Good signature from user "Martin Kraemer
&lt;martin@apache.org&gt;".</example>
<p>erhalten.</p>
<p>Abh&#228;ngig von den Vertrauensbeziehungen in Ihrem
Schl&#252;sselring k&#246;nnen Sie auch eine Meldung erhalten, die
besagt, dass die Beziehungen zwischen dem Schl&#252;ssel und dem
Unterzeichner des Schl&#252;ssels nicht verifiziert werden k&#246;nnen.
Solange Sie der Authentizit&#228;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>
$ gzip -d httpd-2_1_<em>NN</em>.tar.gz<br />
$ tar xvf httpd-2_1_<em>NN</em>.tar
</example>
<p>Dies erstellt unterhalb des aktuellen Verzeichnisses ein neues
Verzeichnis, das den Quellcode f&#252;r die Distribution enth&#228;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&#228;chste Schritt ist die Konfiguration des
Apache-Codebaumes f&#252;r Ihre spezielle Plattform und Ihre
pers&#246;nlichen Bed&#252;rfnisse. Dies wird mit dem Skript
<code>configure</code> durchgef&#252;hrt, das im Wurzelverzeichnis
der Distribution enthalten ist. (Entwickler, welche die CVS Version
des Apache-Codebaumes herunterladen, m&#252;ssen <code>autoconf</code>
und <code>libtool</code> installiert haben und m&#252;ssen
<code>buildconf</code> ausf&#252;hren, bevor sie mit den
n&#228;chsten Schritten fortfahren k&#246;nnen. Dies wird bei
offiziellen Releases nicht notwendig sein.)</p>
<p>Um den Codebaum mit den Standardeinstellungen zu konfigurieren,
geben Sie einfach <code>/configure</code> ein. Zur &#196;nderung
dieser Voreinstellungen akzeptiert <code>configure</code> eine
Reihe von Variablen und Kommandozeilenoptionen. Umgebungsvariablen
werden &#252;blicherweise vor den <code>/configure</code>-Befehl gesetzt,
w&#228;hrend andere Optionen danach gesetzt werden. Die wichtigste Option
hierbei ist der vorangestellte Ablageort, unter dem der Apache sp&#228;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&#252;r Ihre pers&#246;nlichen W&#252;nsche.</p>
<p>Um einen kurzen Eindruck zu gewinnen, welche M&#246;glichkeiten Sie
haben, folgt hier ein typisches Beispiel, das den Apache mit einem
speziellen Compiler und Compilerflags f&#252;r das
Installationsverzeichnis <code>/sk/pkg/apache</code> kompiliert, sowie
die beiden zus&#228;tzlichen Module <module>mod_rewrite</module> und
<module>mod_speling</module> f&#252;r sp&#228;teres Laden durch den
DSO-Mechanismus:</p>
<example>
$ CC="pgcc" CFLAGS="-O2" \<br />
/configure --prefix=/sw/pkg/apache \<br />
--enable-rewrite=shared \<br />
--enable-speling=shared
</example>
<p>Wenn <code>configure</code> startet, ben&#246;tigt es mehrere Minuten,
um die Verf&#252;gbarkeit von Features auf Ihrem System zu pr&#252;fen
und ein Makefile zu generieren, das sp&#228;ter zur Kompilierung des
Servers verwendet wird.</p>
<p>Die einfachste Art und Weise, alle Konfigurationsflags f&#252;r den
Apache herauszufinden, ist, <code>/configure --help</code> aufzurufen.
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&#252;r die Konfiguration der Generierungsumgebung.
Im allgemeinen ver&#228;ndern diese Variablen die Methode, die benutzt
wird, um den Apache zu erstellen, nicht aber die letztendlichen
Features des Servers. Diese Variablen k&#246;nnen vor dem Aufruf von
<code>configure</code> im Environment gesetzt werden, doch es ist
&#252;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&#228;prozessor- und Compileroptionen.</dd>
<dt><code>CFLAGS=...</code></dt>
<dd>Debug- und Optimierungsoptionen f&#252;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 &#252;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&#252;r Header-Dateien
("<code>-I<em>Verzeichnis</em></code>").</dd>
<dt><code>TARGET=...</code> [Default: <code>httpd</code>]</dt>
<dd>Name der lauff&#228;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&#252;hrt hat. Dies erlaubt die Einbeziehung
von Flags, die w&#228;hrend des Featuretests Probleme bereiten
w&#252;rden, aber f&#252;r die endg&#252;ltige Kompilierung verwendet
werden m&#252;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&#223;lich aller
verf&#252;gbaren Optionen aus, ohne jedoch tats&#228;chlich etwas zu
konfigurieren.</dd>
<dt><code>--quiet</code></dt>
<dd>Verhindert die Ausgabe der &#252;blichen "<code>checking...</code>"
Nachrichten.</dd>
<dt><code>--verbose</code></dt>
<dd>Gibt w&#228;hrend des Konfigurationsprozesses weitergehende
Informationen aus, einschlie&#223;lich der Namen aller untersuchter
Dateien.</dd>
</dl>
</section>
<section id="pathnames"><title>Pfadangaben</title>
<p>Gegenw&#228;rtig existieren zwei M&#246;glichkeiten, die Pfade
zu konfigurieren, in denen der Apache seine Dateien installiert.
Bei der ersten k&#246;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:
<code>/usr/local/apache2</code>]</dt>
<dd>Gibt das Verzeichnis an, in dem die Apache-Dateien
installiert werden.</dd>
</dl>
<p>Es ist m&#246;glich, anzugeben, dass Architektur-abh&#228;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&#228;ngige Dateien
abgelegt werden.</dd>
</dl>
<p>Die zweite und flexiblere Weise, den Installationspfad f&#252;r den
Apache einzustellen, ist die Verwendung der Datei
<code>config.layout</code>. Wenn Sie diese Methode benutzen, k&#246;nnen
Sie den Ablageort f&#252;r jeden Dateityp innerhalb der
Apache-Installation separat angeben. Die Datei
<code>config.layout</code> enth&#228;lt verschiedene
Konfigurationsbeispiele. Sie k&#246;nnen auch anhand der Beispiele Ihre
eigene individuelle Konfiguration erstellen. Die verschiedenen
Layouts in dieser Datei sind gruppiert in <code>&lt;Layout
FOO&gt;...&lt;/Layout&gt;</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
<code>config.layout</code>, um die Installationspfade genau
anzugeben.</dd>
</dl>
</section>
<section id="modules"><title>Module</title>
<p>Der Apache ist ein modularer Server. Nur die grundlegendste
Funktionalit&#228;t ist im Kernserver enthalten. Erweiternde Features
stehen in verschiedenen Modulen bereit. W&#228;hrend des
Konfigurationsprozesses m&#252;ssen Sie ausw&#228;hlen, welche Module
f&#252;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&#228;&#223;ig enthalten und m&#252;ssen ausdr&#252;cklich
deaktiviert werden (z.B. <module>mod_userdir</module>), wenn Sie sie
nicht verwenden m&#246;chten. Module mit einem anderen Status (z.B.
<module>mod_expires</module>) m&#252;ssen ausdr&#252;cklich aktiviert
werden, wenn Sie sie verwenden m&#246;chten.</p>
<p>Es gibt zwei M&#246;glichkeiten, Module zu kompilieren und mit dem
Apache zu benutzen. Module k&#246;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. &#220;bersetzers: dynamisch eingebundene Bibliotheken)
unterst&#252;tzt und <code>autoconf</code> diese Unterst&#252;tzung
erkennen kann, dann k&#246;nnen Module alternativ <em>dynamisch
kompiliert</em> werden. DSO-Module werden von der Apache Binary getrennt
gespeichert und k&#246;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&#252;gt, sobald ein dynamisches Modul
in die Kompilierung einbezogen wird. Wenn Sie Ihren Server f&#252;r das
Laden von DSOs tauglich machen wollen, ohne jedoch ein dynamisches Modul
zu kompilieren, k&#246;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&#252;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&#252;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 &#252;blicherweise eine durch Leerzeichen getrennte Liste von
Modul-Bezeichnern. Zum Beispiel k&#246;nnen zum Aktivieren von
<module>mod_dav</module> und <module>mod_info</module> beide
benutzt werden, sowohl</p>
<example>/configure --enable-dav --enable-info</example>
<p>oder &#228;quivalent</p>
<example>/configure --enable-modules="dav info"</example>
<p>Zus&#228;tzlich k&#246;nnen die speziellen Schl&#252;sselw&#246;rter
<code>all</code> oder <code>most</code> benutzt werden, um alle oder
die meisten der Module in einem Schritt hinzuzuf&#252;gen. Sie
k&#246;nnen Module, die Sie nicht benutzen m&#246;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&#246;nnen Sie</p>
<example>
/configure --enable-mods-shared=all
--disable-info
</example>
<p>verwenden.</p>
<p>Zus&#228;tzlich zum Standard-Set von Modulen f&#252;gt der Apache 2.0
auch eine Auswahl von <a href="mpm.html">Multi-Processing Modulen</a>
(MPMs) ein. Ein, und nur ein einziges, MPM muss in den
Kompilierungsprozess eingebunden werden. Das voreingestellte MPM jeder
Plattform ist in der <a href="mpm.html">MPM Dokumentation</a>
aufgef&#252;hrt, kann jedoch mit der <code>configure</code>-Kommandozeile
&#252;berschrieben werden.</p>
<dl>
<dt><code>--with-mpm=<em>NAME</em></code></dt>
<dd>W&#228;hlt das MPM <em>NAME</em>.</dd>
</dl>
<p>Um ein MPM mit dem Namen <var>mpm_name</var> zu aktivieren, verwenden
Sie</p>
<example>
/configure --with-mpm=<var>mpm_name</var>
</example>
</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&#252;ssel/Wert-Datenbanken f&#252;r eine schnelle Suche nach
Informationen. Der Apache-Quellcode enth&#228;lt SDBM, so dass
diese Datenbank immer verf&#252;gbar ist. Wenn Sie einen anderen
Datenbanktyp benutzen m&#246;chten, k&#246;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&#228;lt ein Hilfsprogramm namens <a
href="suexec.html">suexec</a>, das zur Isolation benutzereigener
CGI-Programme verwendet werden kann. Wenn suexec jedoch
unsachgem&#228;&#223; konfiguriert wurde, kann es schwere
Sicherheitsprobleme verursachen. Deshalb sollten Sie die
<a href="suexec.html">suexec Dokumentation</a> sorgf&#228;ltig lesen
und beachten, bevor Sie dieses Feature implementieren.
</p>
</section>
</section>
<section id="compile"><title>Erstellen</title>
<p>Nun k&#246;nnen Sie die verschiedenen Teile, die das Apache-Paket
bilden, einfach durch Ausf&#252;hren des folgenden Befehls erstellen:</p>
<example>$ make</example>
<p>Seien Sie hierbei bitte geduldig, denn eine Basiskonfiguration
ben&#246;tigt ungef&#228;hr 3 Minuten auf einem Pentium III/Linux 2.2.
System. Dies kann aber abh&#228;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 &#252;berschrieben.</p>
</section>
<section id="customize"><title>Anpassen</title>
<p>Als n&#228;chstes k&#246;nnen Sie Ihren Apache HTTP Server anpassen,
indem Sie die <a href="configuring.html">Konfigurationsdateien</a>
unterhalb von <code><em>PREFIX</em>/conf/</code> editieren.</p>
<example>$ vi <em>PREFIX</em>/conf/httpd.conf</example>
<p>Werfen Sie auch einen Blick in das Apache-Handbuch unter <a
href="./">docs/manual/</a>. Die aktuellste Version dieses Handbuchs
sowie eine komplette Referenz der verf&#252;gbaren <a
href="mod/directives.html">Konfigurationsanweisungen</a> finden
Sie unter <a href="http://httpd.apache.org/docs-2.1/"
>http://httpd.apache.org/docs-2.1/</a>.</p>
</section>
<section id="test"><title>Testen</title>
<p>Sie k&#246;nnen nun Ihren Apache HTTP Server <a
href="invoking.html">starten</a>, indem Sie einfach</p>
<example>$ <em>PREFIX</em>/bin/apachectl start</example>
<p>ausf&#252;hren.</p>
<p>Danach sollten Sie Ihr erstes Dokument unter dem URL
<code>http://localhost/</code> anfordern k&#246;nnen. Die Webseite,
die Sie sehen, ist im <directive module="core">DocumentRoot</directive>
abgelegt, welches &#252;blicherweise <code><em>PREFIX</em>/htdocs/</code>
ist. Den Server <a href="stopping.html">stoppen</a> Sie wieder durch
Ausf&#252;hren von:</p>
<example>$ <em>PREFIX</em>/bin/apachectl stop</example>
</section>
<section id="upgrading"><title>Upgrade</title>
<p>Der erste Schritt beim Aktualisieren besteht darin, die
Versionsank&uuml;ndigung sowie die <code>CHANGES</code>-Datei in der
Quelltextdistribution zu lesen, um &Auml;nderungen zu finden, die Ihr
System m&ouml;glicherweise betreffen. Wenn Sie einen gr&ouml;&szlig;eren
Versionssprung durchf&uuml;hren (z.B. vom 1.3 auf 2.0 oder von 2.0 auf
2.2), wird es wahrscheinlich auch gr&ouml;&szlig;ere Unterschiede in der
Kompilier- und Laufzeitkonfiguration geben, die manuelle Nacharbeiten
erfordern. Au&szlig;erdem m&uuml;ssen alle Module aktualisiert
werden, um den &Auml;nderungen der Modul-API gerecht zu werden.</p>
<p>Die Aktualisierung einer Unterversion auf eine andere (z.B. von 2.0.55
auf 2.0.57) ist einfacher. <code>make install</code> &uuml;berschreibt
keine der bereits existierenden Dokumente, Log- und Konfigurationsdateien.
Ausserdem bem&uuml;hen sich die Entwickler, inkompatible &Auml;nderungen
der <code>configure</code>-Optionen, der Laufzeitkonfiguration sowie der
Modul-API zu vermeiden. In den meisten F&auml;llen sollten Sie in der
Lage sein, den gleichen <code>configure</code>-Befehl, die gleiche
Konfiguration und die gleichen Module wieder zu verwenden. (Das gilt erst
seit Version 2.0.41 -- fr&uuml;here Versionen enthielten noch inkompatible
&Auml;nderungen).</p>
<p>Wenn Sie den Quellcode von Ihrer letzten Installation aufgehoben haben,
ist ein Upgrade sogar noch einfacher. Die Datei <code>config.nice</code> im
Wurzelverzeichnis des alten Quelltextbaums enth&auml;lt den genauen
<code>configure</code>-Befehl, der verwendet wurde, um den Quellcode
zu konfigurieren. Um jetzt von einer Version auf die n&auml;chste zu
aktualisieren, kopieren Sie einfach die <code>config.nice</code> in das
Verzeichnis der neuen Version, passen sie bei Bedarf an, und
f&uuml;hren Sie sie aus:</p>
<example>
$ /config.nice<br />
$ make<br />
$ make install<br />
$ <var>PREFIX</var>/bin/apachectl stop<br />
$ <var>PREFIX</var>/bin/apachectl start<br />
</example>
<note type="warning">Sie sollten jede neue Version immer in Ihrer Umgebung
testen, bevor Sie sie produktiv schalten. Beispielsweise k&ouml;nnen Sie
die neue Version neben der alten installieren, indem Sie ein anderes
<code>--prefix</code> und einen anderen Port w&auml;hlen (durch Anpassen der
<directive module="mpm_common">Listen</directive>-Direktive). So
k&ouml;nnen Sie auf eventuelle Inkompatibilit&auml;ten testen, bevor Sie
endg&uuml;ltig die neue Version verwenden.</note>
</section>
</manualpage>