Inhalt und Ziel dieses Artikels
Download und Installation unter WinNT/Win9x
Erste Inbetriebnahme des Servers
Installation des Servers als Dienst (WinNT)
Virtuelle Server
Apache und die CGI Schnittstelle
Apache und die Zugangskontrolle
Inhalt und Ziel dieses Artikels
50% aller Web - Server welche weltweit dienen sind vom "Typ Apache" der eigentlich so gar nichts mit Indianern zu tun hat: Die Namensgebung kommt von "A-Patch-Y"... Als eine Software die wie jede Andere ständig verbessert, gepatcht und weiterentwickelt wird ist dieser WebServer frei erhältlich und somit interessant für alle die sich mit dem Gedanken tragen einen WebServer einzurichten, sei es für lokale Testumgebungen, fürs Intranet oder einfach nur zum Kennenlernen.
Dieser Artikel erhebt keinen Anspruch auf Vollständigkeit und ist deswegen auch keine Übersetzung des Manuals zum Apache schlechthin. Dieser Artikel hat lediglich eine kurze Einführung in die Apache Thematik und die ersten Schritte der Inbetriebnahme des Servers unter WinNT bzw. Win9x zum Inhalt. Sofern es zwischen Win9x und WinNT Unterschiede gibt wird im Artikel darauf hingewiesen. Zum weiteren Vertiefen in die Apache Thematik wird das Studium der mitgelieferten Dokumentation empfohlen.
Getestet wurde für diesen Artikel die Apache Software mit der aktuellen Version
1.3.x für WinNT/200 sowie für Win9x.
Download und Installation unter WinNT/Win9x
Die ca. 3MB große Datei apache_1_3_27....exe downloaden und ausführen. Nach der Auswahl aller Komponenten (Custom) sollte die Installation dann auf den meisten Rechnern problemlos verlaufen und ist auch nicht weiter aufregend.
Erste Inbetriebnahme
Interessant wird der erste Versuch des Ausprobierens, vorausgesetzt das Netzwerkprotokoll TCP/IP ist auf dem lokalen PC installiert kann es sofort damit losgehen.
Mit dem Klicken auf die Verknüpfung "Start Apache" im Startmenu tut sich jedoch scheinbar nichts, es öffnet sich ein DOS - Fenster um kurz darauf wieder zu verschwinden. Nach dem Öffnen einer DOS - BOX im Verzeichnis "c:\Programme\Apache Group\Apache" und dem Aufruf der "apache.exe" wird die Fehlermeldung nun sichtbar:
apache: cannot determine local host name.
Use the ServerName directive to set it manually.
|
Die Meldung führt direkt zur Apache - Konfigurationsdatei, diese Datei befindet sich standardmäßig im folgenden Pfad:
|
c:\Programme\Apache Group\Apache\conf\httpd.conf
|
Die Datei "httpd.conf" mit einem Texteditor öffnen und die Zeile suchen wo steht:
|
#ServerName new.host.name
|
Diese Zeile muss geändert werden in:
ServerName localhost # oder
ServerName 127.0.0.1 # oder
ServerName ip.ip.ip.ip # die lokale IP also
|
Nach den Speichern der "httpd.conf" kann der Server über das Startmenü gestartet werden und liegt im Hintergrund. Von der Existenz eines WebServers können Sie sich sofort überzeugen indem Sie ein Browserfenster öffnen und als URL "localhost", "127.0.0.1" oder einfach Ihren Rechnernamen eingeben. Wenn alles geklappt hat sehen Sie folgendes:
It Worked! The Apache Web Server is Installed on this Web Site!
Beachte: Fehlerhafte Einträge in der "httpd.conf" bewirken, dass der Server nicht mehr startet. Es ist in einem solchen Fall empfehlenswert im Verzeichnis "c:\Programme\Apache Group\Apache" eine DOS-Box aufzumachen und als Befehl einzugeben: "apache.exe". Der Fehler kann somit anhand der ausgegebenen Fehlermeldung leicht eingegrenzt werden. Sollte das nicht zum Ziel führen besteht als letzte Rettung die Möglichkeit die Datei "c:\Programme\Apache Group\Apache\conf\httpd.conf.default" über die "httpd.conf" zu kopieren um damit die Default Werte wieder einzustellen.
Installation des Servers als Dienst (WinNT)
Unter WinNT gibt es auch die Möglichkeit, den Server als Dienst zu installieren, dazu im Verzeichnis "c:\Programme\Apache Group\Apache" eine "CMD" starten und folgendes Kommando absetzen:
Im Ergebnis dessen gibt es einen neuen Dienst:
Soll der Apache - Dienst einen eigenen Namen bekommen, so muss beim Installieren der folgende Syntax verwendet werden:
Die Uninstallation des Apache - Dienstes erfolgt (wenn gewünscht) mit diesem Kommando:
Virtuelle Server
Der Apache unterstützt virtuelle Server die sowohl Name Based als auch IP Based eingerichtet werden können.
Name Based
Name Based bedeutet, dass auf einer IP - Adresse mehrere virtuelle Hosts eingerichtet werden.
Nachdem der Apache mit der Standardkonfiguration so funktioniert, soll nun als Nächstes die Eigene Webseite mit einer Namenauflösung auf die IP "127.0.0.1" als virtueller Server eingerichtet werden. Die Auflösung des Domain - Namen erfolgt auf dem lokalen PC wie gewohnt über die Datei HOSTS im Verzeichnis c:\Windows (Win9x) bzw. c:\winnt\system32\drivers\etc (WinNT) wie gehabt:
|
127.0.0.1 localhost www.interaktiv.net
|
... also den Namen einfach mit Leerzeichen getrennt von der IP - Nummer notieren. Für den dem Apache hinzuzufügenden virtuellen Server gilt es zu konfigurieren:
- Server - Name
- Dokument - Root
- Name der Index - Seite
- CGI-BIN - Schnittstelle
Ein einziger Abschnitt am Ende der Datei httpd.conf erledigt dies:
NameVirtualHost 127.0.0.1:80 # ip.ip.ip.ip:Port
<VirtualHost 127.0.0.1>
ServerName www.interaktiv.net
DocumentRoot d:/home/interaktiv.net/htdocs
DirectoryIndex index.html
ScriptAlias /cgi-bin/ d:/home/interaktiv.net/cgi-bin/
</VirtualHost>
|
Beachte: Bei den Verzeichnisangaben kann nach der "DocumentRoot" der abschließende Backslash entfallen, er ist jedoch zwingend nowendig mit der Angabe des physischen Pfades zum /cgi-bin/-Verzeichnis. Gibt es innerhalb einer Pfadangabe oder eines Namens Leerzeichen, muss die Deklaration in doppelten Anführungszeichen gemacht werden.
Es soll nun ein weiterer virtueller Host mit dem Namen "www.test.de" erstellt werden, also "rein" in die HOSTS und notieren:
|
127.0.0.1 localhost www.interaktiv.net www.test.de
|
... und der Datei httpd.conf den folgenden Abschnitt hinzufügen:
<VirtualHost 127.0.0.1>
ServerName www.test.de
DocumentRoot c:/a_test
DirectoryIndex test.html
</VirtualHost>
|
Anmerkung: Änderungen in der Konfiguration des Apache werden immer erst nach einem Neustart des Servers bzw. des Dienstes wirksam.
IP based
Hat der Rechner mehrere IP's, besteht auch die Möglichkeit auf diese IP-Adressen virtuelle Hosts einzurichten. Eine Namenauflösung kann dazu wie gehabt über die hosts-Datei erfolgen.
127.0.0.1 localhost interaktiv.net
192.165.33.1 www.xxl.de
|
Der entsprechende Abschnitt in der Konfigurationsdatei sieht dazu so aus:
<VirtualHost 192.165.33.1>
ServerName www.xxl.de
DocumentRoot c:/xxl
</VirtualHost>
|
Apache und die CGI Schnittstelle
Die CGI-Schnittstelle wird in der Datei "httpd.conf" eingerichtet indem ein ScriptAlias vergeben wird, so wie weiter oben bereits beschrieben:
|
ScriptAlias /cgi-bin/ d:/home/interaktiv.net/cgi-bin/
|
Es besteht auch die Möglichkeit mehrere /cgi-bin/-Verzeichnisse anzulegen. Wichtig ist bei der Vergabe des ScriptAlias wie bereits gesagt, der abschließende Slash und ein Leerzeichen zwischen der Angabe des virtuellen und des physischen Pfades.
Der Pfadangabe zum PERL-Interpreter erfolgt beim Apache nicht in der Konfigurationsdatei sondern ausschließlich in der ersten Zeile des Scripts! Wurde der Pfad zum PERL-Interpreter bereits in der PATH-Variablen angegeben, reicht es unter WinNT bzw. Win9x im Script die 1. Zeile wie folgt zu notieren:
Die Vereinfachung dieser Zeile wird dadurch möglich dass der Apache Server die Variable "PATH" abfragt um den zum Script zugehörigen Interpreter zu finden oder
man trägt die entfernt den Kommentar vor dem Eintrag
ScriptInterpreterSource registry
dann kann man in der ersten Zeile auf den Unix-Eintrag (#!/usr/bin/perl) stehen lassen, dann muss man nicht immer beim Upload die Zeile ändern.
Apache und die Zugangskontrolle
Die Datei .htaccess ist unter LINUX/UNIX/AIX eine versteckte Datei (das macht der vorangestellte Punkt) mit welcher das Verhalten des WebServers Apache bei einem Zugriff auf das entsprechende Verzeichnis gesteuert werden kann. Dieser Dateiname ist als Default in der ApacheKonfiguration vorgegeben und kann auch anders lauten (Provider fragen).
Trifft der Request auf ein Verzeichnis wo in der .htaccess z.B. das Folgende steht...
AuthUserFile f:/home/interaktiv.net/pwlist
AuthName "Sambar Admin Login"
AuthType Basic
require valid-user
|
... so wird per Prompting ein Benutzername sowie ein Passwort verlangt:

Die Zeile AuthUserFile f:/home/interaktiv.net/pwlist gibt den Pfad und den Namen der Passwortdatei an (absolute Pfadangabe, unter LINUX entfällt natürlich der Laufwerksbuchstabe). Der Eintrag in dieser Passwortdatei enthält pro Zeile den Benutzernamen gefolgt von einem Doppelpukt und dem verschlüsselten Passwort:
Zum Verschlüsseln des Passworts kann die crypt - Funktion unter LINUX oder auch in PERL verwendet werden, dabei ist auch ein sogenanntes Salt (siehe ausführliche Infos, Link am Ende des Abschnittes) anzugeben.
Einfach und schnell funktioniert das Anlegen einer Passwortdatei auf der LINUX - Kommandozeile (Telnet) mit dem Programm htpasswd. Dazu gleich ein Beispiel:
|
htpasswd -cb pwfile otto otto
|
Mit diesem Kommando wird eine Datei pwfile für Benutzername otto mit verschlüsseltem Passwort otto im aktuellen Pfad angelegt. Weitere Hilfe zu htpasswd
Usage:
htpasswd [-cmdps] passwordfile username
htpasswd -b[cmdps] passwordfile username password
-c Create a new file.
-m Force MD5 encryption of the password.
-d Force CRYPT encryption of the password (default).
-p Do not encrypt the password (plaintext).
-s Force SHA encryption of the password.
-b Use the password from the command line rather than prompting for it.
On Windows and TPF systems the '-m' flag is used by default.
On all other systems, the '-p' flag will probably not work.
|
Ausführliche Infos zu htaccess findet der Interessierte unter diesem Link.
|