Nutzung des Apache Webservers

Vortrag von Roger am 26. Februar 2002.

Der Apache Webserver ist mit Sicherheit eines der bekanntesten Open Source Projekte, und ebenso sicher eines der erfolgreichsten. Ungefähr 60% aller Websites weltweit werden mithilfe des Apaches betrieben, so auch die Site der Lugmu.

Installation erfolgt ab CD, bei SuSE ist Apache im Bereich Netzwerk zu finden; er wird aber für die meisten Konfigurationen sowieso installiert, weil Hilfesysteme sehr oft auf HTML Seiten, und damit auf dem Webserver aufbauen.

Konfiguration in httpd.conf

Die Konfiguration erfolgt in genau einem Textfile, nämlich httpd.conf.
Das File ist in drei Teile, sogenannte Sections unterteilt. Section 1, das sogenannte "Global Environment", Section 2 die "Main Server" und 3 die Konfiguration sogenannter "Virtual Hosts". Virtuelle Hosts sind eine Möglichkeit mehrere Sites vom gleichen Server bedienen zu lassen.
Das File ist, in englischer Sprache, sehr gut kommentiert, und das meiste kann man, zumal wenn man am System in jeder Beziehung "basteln" darf, einfach mal versuchweise umkonfigurieren. Nach jeder Umkonfiguration muss man den Server allerdings neu starten, bei SuSE beispielsweise mit dem Befehl "rcapache restart".

Die Einstellungen in Section 1 werden tunlichst nicht verändert, es sei denn man weiss genau, was man tut (aber dann hat man diese Informationen längst nicht mehr nötig...).
Einiges von dem was in Section 2 konfiguriert wird, darf, und teilweise muss, auch in den Virtuellen Hosts neu konfiguriert werden, beispielsweise die Anweisung DocumentRoot, welche wir jetzt gleich behandeln werden.

Einige Standardeinstellungen in Section 2 "Main Server"

DocumentRoot "/usr/local/httpd/htdocs"

Diese Anweisung sagt dem Server wo die Website im Verzeichnisbaum liegt. Dahin muss ich also meine eigenen Seiten legen, wenn ich darauf via http:// zugreifen möchte. Beim Übertragen der Seiten auf den Server darauf achten, dass die Dateizugriffsrechte ein Lese- Ausführungsrechte (Verzeichnisse) für die "weite weite Welt" beinhalten!

DirectoryIndex index.php index.shtml index.html

Sagt dem Server welche Seiten er suchen/anzeigen soll, wenn der Benutzer keine Seite vorgibt. Tippt der User beispielsweise http://www.lugmu.ch so gibt er eben keine spezifische HTML Seite an, der Server muss also wissen, welche Seite er in einem solchen Fall anzeigen soll. In unserem Beispiel sucht der Server zuerst eine Seite index.php, dann index.shtml und am Schluss index.html.

AddType text/html .shtml
AddHandler server-parsed .shtml

Diese Anweisungen sagen dem Server, dass er Dateien welche auf .shtml enden (anstelle von beispielsweise .html), nach sogenannten Server Side Include Anweisungen durchsuchen soll. Siehe untenstehenden Abschnitt.

Zugriff auf den Server

Sofern ein Domain Name Server oder System (z.B. /etc/hosts) existiert, kann der Webserver sinnvollerweise mit Namen angesprochen werden. Sofern kein DNS und kein hosts Eintrag existiert, kann der Server auch via seine IP Adresse angesprochen werden, mit http://192.168.1.20/ (resp. der eingestellten Adresse).

Letztere Methode funktioniert allerdings nicht mehr, wenn Virtuelle Namensbasierte Hosts eingerichtet werden, und darum geht's jetzt in der...

Section 3, namensbasierte virtuelle Hosts

NameVirtualHost 192.168.1.20

<VirtualHost *>
   DocumentRoot /www/siteA/docs
   ServerName siteA.domain.com
</VirtualHost>

<VirtualHost *>
   DocumentRoot /www/siteB/docs
   ServerName siteB.domain.com
   ServerAdmin webmaster@domain.com
   ServerSignature EMail
   CustomLog logs/siteB.accesslog common
</VirtualHost>

Diese Gruppe von Anweisungen definiert zwei namensbasierte virtuelle Hosts.

Die erste <VirtualHost> Direktive stellt dabei das absolute Minimum an Definitionen dar. Der Server Name muss ein gültiger Domain Name sein.

Das zweite Beispiel definiert zusätzlich, dass Zugriffe für die SiteB in eine separate Logdatei aufgezeichnet werden. Die Angabe des ServerAdmin zusammen mit "ServerSignature EMail" wird bei Fehlermeldungen verwendet, dort wird die Email Adresse des Admins eingeblendet.

Server Side Includes (SSI)

Server Side Includes sind eine einfache Möglichkeit, HTML Seiten mit gleichartigen Teilen durch den Server zusammensetzen zu lassen. Beispielsweise ist die Navigation in den Lugmu Seiten mittels SSI realisiert.
An der Stelle an welcher später das Menu stehen soll, steht in der Seite welche auf dem Server liegt die Anweisung

<!--#include virtual="/includes/navi_main.html" -->

Geladen wird also an die leere Stelle in jeder Seite oben links eine Datei, welche auch für sich alleine angeschaut werden könnte, sie befindet sich unter der URL http://www.lugmu.ch/includes/navi_main.html.

Anregungen und Fragen an den Webmaster
Diese Seite wurde zuletzt am Donnerstag, 25. April 2002 erneuert.