Kompilieren und Installieren - Apache HTTP Server

Apache HTTP Server Version 2.2

Apache > HTTP-Server > Dokumentation > Version 2.2

# Kompilieren und Installieren

Verfügbare Sprachen: de | en | es | fr | ja | ko

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.

### Siehe auch

- Den Quellcode konfigurieren
- Den Apache HTTP Server starten
- Beenden und Neustarten

## Überblick für die Ungeduldigen

Download | `$ lynx http://httpd.apache.org/download.cgi`
Auspacken | `$ gzip -d httpd-NN.tar.gz $ tar xvf httpd-NN.tar $ cd httpd-NN`
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 wie `make` 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` oder `xntpd` 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` oder `dbmmanage` (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 von `configure` ausgewählt wird. Wenn kein Perl 5-Interpreter vom `configure`-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` und `apr-util` werden mit den Quelltext-Veröffentlichungen des Apache HTTPd gebündelt und in nahezu allen Fällen ohne Probleme verwendet. Sind jedoch die `apr`- oder `apr-util`-Versionen 1.0 oder 1.1 auf Ihrem System installiert, dann müssen Sie diese `apr`-/`apr-util`-Installationen entweder aktualisieren oder httpd separate Kompilate verwenden lassen. Um hierfür die mitgelieferten `apr`-/`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
`

Sie sollten jede neue Version immer in Ihrer Umgebung testen, bevor Sie sie produktiv schalten. Beispielsweise können Sie die neue Version neben der alten installieren, indem Sie ein anderes `--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.

Verfügbare Sprachen: de | en | es | fr | ja | ko