Tutorial : Der Apache WebServer
      
Shopsoftware Shopsystem
  Home     Download     News     Kontakt     Impressum     Sitemap  

Demo-Version   
Häufige Fragen   
Module und Preise   
Wie bestellen   
Support   
AnfrageAnfrage   
TutorialsTutorials
Partnerprogramm   
Über interaktiv.net   
Leistungen   
Referenzen   
Sie sind hier  :  Startseite Support Tutorials
Der Apache WebServer


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:

apache -i

Im Ergebnis dessen gibt es einen neuen Dienst:

Apache als Dienst

Soll der Apache - Dienst einen eigenen Namen bekommen, so muss beim Installieren der folgende Syntax verwendet werden:

apache -i -n "red plume"

Die Uninstallation des Apache - Dienstes erfolgt (wenn gewünscht) mit diesem Kommando:

apache -u -n "red plume"

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:

#!perl

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:

Passwort Abfrage / Geschützter Bereich

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:

otto:IN35OJcCKOrXg

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.


interAKTIVnet GmbH
Otto-Lilienthal-Str. 36
71034 Böblingen
Tel. 07031-714740
Fax 07031-714744
info@interaktiv.net