Der Apache Server
1. Download und Installation
In dieser Hilfe wird erklärt, wie man den Apache Server auf einer Maschine installiert. Wir haben den Webserver Apache ausgewählt, da dieser zur Zeit am weitesten verbreitet ist. Er ist ausserdem kostenlos, und der Quellcode ist frei verfügbar auf der Seite:
http://www.apache.org
Achtung!! Die Server von OVH haben bereits die Konfiguration. Sie können auch die Standardskripte zur Kompilierung auf unserem Server finden:
ftp://ftp.ovh.net/made-in-ovh/patch
1.1 Die Quellen von der Webseite laden
Die Version mit der wir in dieser Hilfe arbeiten ist die 1.3.4. Diese können Sie auf der Webseite von Apache
http://www.apache.org herunterladen; es handelt sich dabei um die Datei apache1.3.4.tar.gz.
1.2 Die Quellen in ein temporäres Verzeichnis entpacken
Bevor wir das heruntergeladene Archiv entpacken erstellen wir zuerst ein temporäres Verzeichnis mit dem Befehl: mkdir name_des_verzeichnisses
Dann wird das Archiv mit folgendem Befehl entpackt: tar zxvf name_der _datei.tar.gz. Die Datei ist gezippt und getart. Die Quellen entpacken Sie in das zuvor erstellte temporäre Verzeichnis.
1.3 Die Dateien zur Installation von Apache lesen
Die zur Installation von Apache verwendeten Dateien sind folgende:
Install und alle Dateien im Verzeichnis htdocs/manual.
Dank dieser Dateien wissen wir dass der benötigte Platz für die Installation des Apache Servers 12 MB beträgt und dass die Installation einen C ANSI Compiler benötigt.
1.4 Den Webserver kompilieren
Um den Apache Server zu kompilieren müssen Sie folgende Befehle verwenden:
./configure --prefix=PREFIX , wobei PREFIX für den Installationspfad steht (z.B.: /usr/local/apache)
make
make install
PREFIX/sbin/apachectl start , womit man den HTTPD Daemon starten kann um zu prüfen dass die Kompilierung erfolgreich war (PREFIX steht auch hier für das Installationsverzeichnis).
1.5 Die Konfigurationsdateien editieren
Obwohl auch Programme existieren um den Apache Server zu konfigurieren stellen wir Ihnen hier die Methode zur Konfiguration des Servers über die Modifikation von Textdateien im Verzeichnis conf vor.
Die Konfigurationsdateien befinden sich im Verzeichnis /etc/httpd/conf.
Es gibt 3 wichtige Dateien in der Konfiguration:
access.conf: Enthält die Angaben, um die Zugangsrechte zum Server zu verwalten.
srm.conf: Enthält die Angaben über die für mit einem Browser verbundenen Benutzer zugänglichen Namen und Typen.
http.conf: Enthält die für die Funktion des Servers selbst benötigten Angaben.
1.6 Den Webserver starten
Mit folgendem Befehl starten Sie den Server: apachectl start
Mit folgendem Befehl starten Sie den Server neu: apachectl restart
1.6 Den Webserver anhalten
Mit folgendem Befehl halten Sie den Server an: apachectl stop
2. Konfiguration des Webservers
2.1 Den Port und den Benutzernamen ändern
Für die folgenden Abschnitte ist es notwendig, einen Benutzer erstellt zu haben. Wenn Sie dies noch nciht getan haben, dann können Sie dazu folgenden Befehl verwenden: adduser
Nehmen wir als Beispiel den Benutzer toto.
adduser -g users toto
Um den Namen des Benutzers zu ändern der den Webserver starten wird (hier: toto) muss die Datei http.conf editiert werden. Suchen Sie die Stelle an der User steht und ersetzen Sie nobody durch toto. Dies ergibt dann:
#User ist der Benutzername unter dem der Server auf die Ressourcen des Computers zugreift
User toto
Um den virtuellen Port zu ändern auf dem der Server betrieben wird muss ebenfalls die Datei http.conf editiert werden. Suchen Sie nach der Stelle an der Port steht und ersetzen Sie den Wert der dahinter steht durch den von Ihnen gewünschten Port. Achtung: manche Ports sind reserviert (FTP, Telnet...)! Dies ergibt dann:
#Der Standardport des Servers ist 80, wir ersetzen ihn durch Port 3000
Port 3000
Achtung!! Wenn Sie den virtuellen Port ändern, dann müssen Sie explizit den neuen Port angeben wenn Sie sich mit der Seite von toto verbinden wollen.
2.2 Den Namen des Wurzelverzeichnisses der Benutzer ändern
In diesem Abschnitt möchten wir die Konfiguration so ändern, dass wenn man nach der URL
http://mein_server/toto sucht, Apache die Aatei tutu.html im www Verzeichnis des Benutzers toto sucht.
Dazu muss die Datei srm.conf editiert werden. Suchen Sie die Stelle an der DirectoryIndex steht und ändern Sie den folgenden Eintrag durch die zu ladende Datei. Dies ergibt dann:
Name der Datei(en) die standardmässig anzuzeigen sind wenn in der URL keine Datei angegeben ist.
Wenn Sie mehrere Dateien angeben möchten, dann werden diese einfach eine nach der anderen angegeben:
DirectoryIndex pfad/toto/WWW/tutu.html
2.3 Die Fehlermeldungen ändern
Es ist möglich die Fehlermeldungen zu ändern indem man die Angaben hinter dem Eintrag ErrorDocument in der Datei srm.conf editiert. Zum Beispiel:
ErrorDocument 500 "Internal Server Error" ersetzen durch:
ErrorDocument 500 "Der Server hat einen Fehler gemacht"
oder:
ErrorDocument 404 /missing.html
wird die Seite missing.html anzeigen wenn der Server die gewünschte Seite nicht finden kann (Fehlercode 404).
3. Test des Servers
Es gibt im Prinzip zwei Arten einen Server zu testen:
Die erste, sehr klassische, besteht darin einen Browser zu verwenden und sich die Seite anzeigen zu lassen.
Für die zweite nutzt man eine telnet Verbindung und gibt die Request direkt im Textmodus ein um die Antwort zu bekommen.
Hier ein Beispiel zur Nutzung von telnet: man kann die Indexseite einer Domain herunterladen indem man
telnet vodka 8080, dann
get /index.html HTTP/1.0 gefolgt von zwei Mal ENTER eingibt.
Die Antwort des Servers erfolgt in zwei Teilen, zuerst:
Der Header der anzeigt ob die Frage verstanden wurde, indem er einen Wert zurückgibt (hier: 200 OK), ob die Ressource gefunden wurde, deren Typ...
HTTP/1.0 200 OK
Server : JavaWebServer/1.0.2
Content-length : 1721
Content-type : text/html
Last-modified : Fri, 30 Jan 1998 13:55:28 GMT
Connection :Close
Date : Wed, 06 Jan 1999 16:12:28 GMT
Und dann im zweiten Teil die Ressource selbst: die HTML Seite, das GIF Bild...
Hier einige abweichende Rückmeldungen:
404 Not Found: Die angeforderte Seite wurde nciht gefunden
400 Bad Request: Die Abfrage konnte nicht interpretiert werden
Die Felder Content-Length und Content-Type entsprechen der der Grösse und dem Typ des erhaltenen Dokuments.
4. Leistung
Damit der Server beim Start möglichst wenig Prozesse verwendet muss man die Datei httpd.conf editieren und nach dem Eintrag startservers suchen. Nach dem Eintrag steht normalerweise eine 5, es genügt dann einfach eine 1 an deren Stelle einzutragen um nur einen Prozess zu starten.
5. Einige Fragen
5.1 Die Funktionsweise von VirtualHost
VirtualHost erlaubt es, mehrere virtuelle Maschinen auf dem gleichen Server zu konfigurieren. Der Server muss so konfiguriert sein, dass er mehrere IP-Adressen akzeptiert; dies geschieht normalerweise, indem man den Linux Kernel des Servers konfiguriert. Die Konfiguration befindet sich in der Datei http.conf und hat folgende Form:
VirtualHost domain_name.tld
ServerAdmin
webmaster@domain_name.tld
DocumentRoot /verzeichnis
ServerName domain_name.tld
ErrorLog relatives verzeichnis
TransferLog relatives verzeichnis
/VirtualHost
5.2 Definition von KeepAlive, FollowSymLinks und FancyIndexing
Definition von KeepAlive:
Wenn diese Variable in der Datei http.conf auf ON gesetzt wird, dann erlaubt dies den Browsern anzugeben dass die Verbindungen aktiv bleiben sollen. Wenn die Variable auf OFF steht, dann ist diese Funktion deaktiviert.
Dann findet man zu KeepAlive auch noch andere damit verbundene Variablen, wie zum Beispiel MaxKeepAliveRequests, die angibt wie viele Verbindungen gleichzeitig aktiv bleiben können, oder auch KeepAliveTimeout, die die maximale Dauer in Sekunden angibt für die aktiv gebliebene Verbindungen ohne eine Aktion warten.
Definition von FollowSymLinks:
Die Variable FollowSymLinks befindet sich in der Datei access.conf. Wenn sich diese Variable im Feld OptionsIndexes befindet wird die Verwendung symbolischer Links oder Abkürzungen unterstützt.
Definition von FancyIndexing:
Wenn diese Variable in der Datei srm.conf auf ON gestzt wird, dann werden Icons für die Dateien beim Auflisten von Ordnern angezeigt. Wenn sie auf OFF steht, dann werden Verzeichnisse nur als HTML angezeigt.
Auf diese Variable folgend müssen sich dann eine Reihe von Iconnamen (mit vorgestelltem AddIcon) befinden, mit denen man die Typen der Dateien mit einem Icon verbinden kann wenn FancyIndexing ON ist. Anders gesagt, dies erlaubt es die bei der Anzeige der Ordner verwendeten Icons zu ändern.
6. Die Zugriffsrechte
Ziel ist es, die Zugriffsrechte auf ein Verzeichnis der Webseite zu beschränken. Dies geschieht in zwei Schritten:
1. In der Datei access.conf angeben, dass der Ordner spezielle Rechte hat
Der Schutz einer Seite durch ein Passwort erfolgt einfach durch Hinzufügen folgender Regeln in der Datei access.conf:
Files /verzeichnis/seite.html
AuthName "In dem geschützten Fenster angezeigt Nachricht"
AuthType Basic
AuthUserFile /etc/users.http
require valid-user
/Files
/verzeichnis/seite.html: Ist die geschützte Seite
AuthName: Ist die in dem so geschützten Fenster angezeigte Nachricht
AuthType: Wird normalerweise mit dem Wert "Basic" verwendet
AuthUserFile: Ist die Datei die Benutzernamen und Passwort der Benutzer enthält, die Zugang zu dieser Seite haben
require: Ist eine Direktive der man normalerweise den Wert valid-user (es muss ein gültiger Benutzer in der Datei AuthUserFile vorhanden sein) gibt; man kann jedoch auch nur bestimmte Benutzer freigeben (mit: require user toto)
2. Einen Benutzer und ein Passwort erstellen
Die Erstellung eines Passworts erfolgt mit dem Programm htpasswd und folgender Syntax:
htpasswd [-c] passwordfile username
Mit der Option -c wird die Datei erstellt; ohne -c wird der Datei ein neuer Eintrag hinzugefügt.
passwordfile ist der name der Datei die die Passwörter enthält.
username ist der Benutzername.