Springe zu: Hauptnavigation, Themennavigation, Seiteninhalt, Spezielle Seiten

Installation und erste Schritte

In diesem Artikel erkläre ich die Installation des Webservers Apache in der Version 2.x unter Debian GNU/Linux. Außerdem erfährst du Grundlagen in der Konfiguration des Servers.

Installation

Um den Webserver Apache in der Version 2.2 zu installieren, ist unter Debian GNU/Linux folgender Befehl mit den Rechten des Benutzers root auszuführen:

aptitude install apache2

Neben dem Paket apache2 werden weitere notwendige Pakete automatisch installiert.

Nach der Installation ist der Webserver gestartet und einsatzbereit. Um zu sehen ob er auch funktioniert, kannst du den Textbrowser w3m verwenden:

w3m -dump http://localhost
It works!

Du kannst auch einen Browser auf einem anderen Computer starten und die Adresse http://IP aufrufen. Statt IP ist die IP-Adresse deines Linux-Rechners einzutragen. Besitzt dein Computer z. B. die IP-Adresse 192.168.1.1, lautet der Aufruf: http://192.168.1.1

Weiter unten erfährst du, wie du deine Internetseite z. B. mit dem Namen lfb.local ansprechen kannst.

Einführung in die Konfiguration

Der Webserver kann einfach und flexibel erweitert werden. Dies geschieht z. B. durch das Laden von Modulen oder die Bereitstellung verschiedener Internetseiten, die über eigene Namen aufrufbar sind. Konfigurationsanpassungen lassen sich für jede bereitgestellte Internetpräsents individuell vornehmen.

Alle Konfigurationsdateien befinden sich unterhalb des Verzeichnisses /etc/apache2/. Hier eine Übersicht über die wichtigsten Verzeichnisse und Dateien:

apache2.conf
Dies ist die Konfigurationsdatei des Webservers, die allgemeingültige Einstellungen enthält. An dieser Datei sollten nur Änderungen vorgenommen werden, wenn man sich über deren Auswirkungen im Klaren ist. Vermutlich braucht man diese Datei aber nie editieren, da man viele Einstellungen beispielsweise in den virtuellen Hosts vornehmen kann.
conf.d/
In diesem Ordner können externe Programme Konfigurationsdateien ablegen, die vom Apachen automatisch abgearbeitet werden.
httpd.conf
Diese Datei ist nur aus Kompatibilitätsgründen zu älteren Apache-Versionen vorhanden und wurde von der Datei apache2.conf abgelöst.
mods-available/
In diesem Ordner befinden sich Dateien, die Lade- und Konfigurationsanweisungen von verfügbaren Modulen enthalten.
mods-enabled/
In diesem Verzeichnis befinden sich symbolische Links zu gleichnamigen Dateien aus dem Ordner mods-available. Durch diese Links wird gesteuert, welche Module tatsächlich geladen werden. Dateinamen, die mit einem # beginnen werden ignoriert. Für das Aktivieren oder Deaktivieren von Modulen steht die Programme a2enmod und a2dismod zur Verfügung.
ports.conf
In dieser Datei wird festgelegt, auf welchen IP-Adressen und Ports der Webserver lauschen soll.
sites-available/
Dieser Ordner enthält Konfigurationsdateien zu virtuellen Hosts, die verfügbar aber nicht unbedingt aktiv sein müssen.
sites-enabled/
Dieses Verzeichnis enthält symbolische Links auf gleichnamige Dateien des Ordners sites-available und legt fest, welche virtuellen Hosts (Internetseiten) vom Webserver tatsächlich bereitgestellt werden. Um das Anlegen oder Entfernen dieser Links nicht selbst vornehmen zu müssen, stehen die Programme a2ensite und a2dissite zur Verfügung.

Eine anweisung innerhalb einer Konfigurationsdatei wird Direktive genannt. Obwohl der Apache bei der Schreibweise der Direktiven nicht zwischen Groß- und Kleinschreibung unterscheidet, trägt diese doch zur besseren Lesbarkeit bei. Bei den Argumenten der Direktiven wird oftmals die Groß- und Kleinschreibung unterschieden. Dies gilt z. B. bei der Angabe von Verzeichnispfaden oder Dateinamen.

Zeilen, die mit einem #-Zeichen beginnen, werden als Kommentare betrachtet und bei der Verarbeitung ignoriert.

Anweisungen, die in der Hauptkonfigurationsdatei vorgenommen werden, gelten für den gesamten Server. Wenn Einstellungen nur für bestimmte Bereiche, z. B. einzelne virtuelle Server gelten sollen, sind diese innerhalb eines Abschnittes zu notieren. Ein solches Beispiel findest du weiter unten.

Starten und stoppen des Servers

Hat man Änderungen an der Konfiguration vorgenommen, muss der Server seine Konfigurationsanweisungen neu einlesen. Dies geschieht durch folgenden Befehl:

/etc/init.d/apache2 reload

Bevor man den Server neu startet oder die Konfiguration neu einlesen lässt, sollte man die Konfigurationsdateien überprüfen lassen. Hat man z. B. einen Syntaxfehler oder vergessen das DocumentRoot-Verzeichnis anzulegen, wird der Server nicht neu gestartet und alle Webseiten sind nicht meher erreichbar.

Diese kleinen Flüchtigkeitsfehler kann man erkennen, wenn man das Kommando apache2ctl verwendet:

etch:~# apache2ctl -t
Warning: DocumentRoot [/var/www/lfb.local] does not exist
Syntax OK
etch:~#

Im gezeigten ‘Beispiel wird man darauf hingewiesen, dass das Verzeichnis /var/www/lfb.local nicht angelegt ist und folglich die neu eingerichtete Website nicht erreichbar wäre und der Server nicht neu gestartet werden kann.

Werden keine Probleme gefunden, die den Neustart des Servers betreffen, sieht die Ausgabe wie folgt aus:

etch:~# apache2ctl -t
Syntax OK
etch:~#

Der Server kann mit folgendem Aufruf beendet werden:

/etc/init.d/apache2 stop

Der folgende Aufruf beendet den Server und startet ihn anschließend neu:

/etc/init.d/apache2 restart

Soll der Server gestartet werden, ruft man das Skript /etc/init.d/apache2 mit dem Argument start auf:

/etc/init.d/apache2 start

Namensbasierte virtuelle Hosts

In diesem Abschnitt erkläre ich an einem einfachen Beispiel, wie der Server so konfiguriert werden kann, dass er die Internetseite lfb.local ausliefert.

Der Apache unterstützt das virtuelle Hosting. Damit ist es möglich, viele Internetseite nvon einem Computer, der z. B. nur eine IP-Adresse besitzt, ausliefern zu lassen. Er kann aber auch so konfiguriert werden, dass er Internetseiten abhängig von der IP-Adresse ausliefert.

Für jede auszuliefernde Internetseite (Domain) ist ein eigener virtueller Host anzulegen. Jeder virtuelle Host benötigt mindestens einen Namen und ein Verzeichnis, dessen Dateien er ausliefern soll.

Der standardmäßig eingerichtete Host sucht seine Dateien im Ordner /var/www/, bzw. /var/www/apache2-default/. Gibt man beim Aufruf der Website einen Dateinamen an, wird dieser im Ordner /var/www/ gesucht, während er bei fehlender Angabe eine Index-Datei im Verzeichnis /var/www/apache2-default/ sucht. Dieses Verhalten wird in der Konfigurationsdatei /etc/apache2/sites-available/default festgelegt. Da man ohnehin eigene virtuelle Hosts einrichtet, kann man diese Datei bis auf Weiteres unverändert lassen.

Anlegen eines virtuellen Hosts

Im Ordner /etc/apache2/sites-available/ ist eine Dneue Datei für die auszuliefernde Domain anzulegen. In meinem Beispiel nenne ich diese lfb.local.

Die Website soll unter dem Namen lfb.local aus dem Netzwerk erreichbar sein und die Dateien unterhalb des Verzeichnisses /var/www/lfb.local ausliefern. Die Konfigurationsdatei lfb.local hat folgenden Inhalt:

<VirtualHost *>
    DocumentRoot /var/www/lfb.local
    ServerName lfb.local
</VirtualHost>

Die erste Zeile leitet den Block für die Konfiguration des virtuellen Hosts ein und legt fest, dass der Host auf allen IP-Adressen lauschen soll.

Die Direktive DocumentRoot bestimmt das Verzeichnis, indem nach Dateien zur Auslieferung gesucht werden soll. Das Verzeichnis sollte ohne einen Schrägstrich am Ende angegeben werden. Gibt man später z. B. die Adresse http://lfb.local/test.htm ein, wird nach der Datei /var/www/lfb.local/test.htm gesucht.

Mit der Direktive ServerName legt man den Namen und optional den Port fest, mit dem sich der Server selbst identifiziert. Da der Host auf den Namen lfb.local hören soll, ist dieser hier einzutragen.

Die letzte Zeile beendet den VirtualHost-Block wieder.

Dateien veröffentlichen

Bevor man den neu eingerichteten Server aktivieren kann, ist das mittels DocumentRoot angegebene Verzeichnis anzulegen und mit einer kleinen Testdatei zu füllen:

mkdir /var/www/lfb.local
cd /var/www/lfb.local
echo '<html><body><h1>lfb.local works!</h1></body></html>' > index.html

Virtuellen Host aktivieren

Die folgenden beiden Befehle aktivieren schließlich den eingerichteten virtuellen Host und starten den Server neu:

a2ensite lfb.local
/etc/init.d/apache2 reload

Jetzt ist der Webserver für die Auslieferung der Website vorbereitet. Wenn man in seinem Browser die Adresse lfb.local aufruft, wird dies zu einer Fehlermeldung führen, da zu diesem Namen keine IP-Adresse gefunden werden kann.

Die Datei hosts, die sich unter Linux und Mac OS X im Ordner /etc/ und unter Windows 2000/XP im Verzeichnis C:\WINNT\system32\driverstc befindet, ist um folgende Zeile zu erweitern:

192.168.1.1 lfb.local

Die oben genannte IP-Adresse ist natürlich durch die richtige Adresse deines Linux-Rechners zu ersetzen.

Nun sollte dem Aufruf der Adresse http://lfb.local, bzw. lfb.local nichts mehr im Wege stehen.

Seitenzugriffe und Fehler protokollieren

Standardmäßig werden alle Seitenzugriffe in der Datei /var/log/apache2/access.log protokolliert. Die Datei /var/log/apache2/error.log enthält Status- oder Fehlermeldungen des Webservers, die bei der Fehlerdiagnose hilfreich sein können.

Das Format einer Protokollzeile und der Ablageort der Dateien kann für jeden virtuellen Host individuell festgelegt werden. Dazu stehen die beiden Direktiven CustomLog und ErrorLog zur Verfügung.

CustomLog

Diese Direktive erwartet als erstes Argument den Pfad zur Datei, in der die Zugriffe protokolliert werden sollen. Dieser Pfad sollte absolut, also ausgehend vom Wurzelverzeichnis / eingegeben werden. Das zweite Argument ist entweder eine Zeichenkette, die das Format einer Protokollzeile steuert oder ein vorher mittels LogFormat definierter Nickname. In der Regel kann auf Nicknamen zurückgegriffen werden, die in der Hauptkonfigurationsdatei festgelegt wurden.

Die folgende Zeile sorgt innerhalb eines VirtualHost-Abschnittes dafür, dass die Seitenzugriffe in der Datei /var/www/lfb.local/logs/access.log abgelegt werden und das Format mit dem Nicknamen common genutzt wird:

CustomLog /var/www/lfb.local/logs/access.log common

Bevor die Änderung durch das Neustarten des Servers wirksam gemacht wird, muss sichergestellt sein, dass der angegebene Ordner existiert.

ErrorLog

Diese Direktive legt den Ablageort zur Protokollierung von Fehlern fest und kann in VirtualHost-Abschnitten gesetzt werden.

Das folgende Beispiel protokolliert Fehler in der Datei /var/www/lfb.local/logs/error.log:

ErrorLog /var/www/lfb.local/logs/error.log

Wie bei der CustomLog-Direktive muss auch hier vor dem Neustart oder erneuten Einlesen der Serverkonfiguration sichergestellt werden, dass der angegebene Ordner vorhanden ist.

Datum der Veröffentlichung: Mittwoch, 31.01.2007

Nach oben

Diese Seite drucken