Artikel
Microsoft Personal Web Server einrichten


Rubrik:
Grundlagen

Typ:
Anleitung

Stand:
abgeschlossen

Stichworte:
Microsoft Personal Web Servers, PWS, Installation, Konfiguration, Script, CGI, Windows, Einrichtung, Perl ,PHP 3, CGI Baisc, Anleitung, Einsteiger, Softwarentwicklung



Obwohl der PWS (Personal Web Server) im Hinblick auf einen Einsatz als echter Server erhebliche Mängel (z.B. Sicherheit) aufweist, so ist er für die Entwicklung von Scripten und Webanwendungen dennoch eine interessante Alternative. Die Einrichtung ist relativ einfach und es ist i.d.R. kein Download notwendig. Fast alle dynamischen Webinhalte und Programme lassen sich mit ihm testen.
Im Folgenden wird kurz beschrieben wie der PWS installiert und eingerichtet werden muss, um alle auf meinen Seiten enthaltenen Beispiele ausführen zu können:

  1. Installation
  2. Einrichtung von Script Interpretern
    - Perl
    - PHP
    - CGIBasic BETA (Eine QBasic basierende Scriptsprache ... just for fun)

 

Installation

Die Installation des PWS ist denkbar einfach. Die Windows CD ROM enthält den PWS standardmäßig und dieser kann über die 'setup.exe' installiert werden. Es ist auch möglich die neuste Version des PWS von der MS Seite herunter zu laden. Folgen Sie den einzelnen Installationsschritten und nach einem Neustart Ihres Rechners sollte der PWS bereits laufen. Über das Task Icon für den Personal Web-Manager können sie nun einige (wenige) Einstellungen für den Server vornehmen.

Bitte beachten Sie das im folgenden immer von den Standard Verzeichnissen und Namen ausgegangen wird die bei dem PWS 4.0 unter Win98 verwendet werden.

PWS Verzeichnis mit der setup.exe auf der Win98 CD ROM: X:\add-ons\pws\setup.exe
PWS Programm Verzeichnis X:\windows\system\inetsrv
Standard Publikationsverzeichnis nach der Installation: X:\Inetpub
Standard Scriptverzeichnis: X: \Inetpub\scripts
Standard HTML Root des Servers X:\Inetpub\wwwroot


Test
  1. Falls der PWS noch nicht aktiviert ist starten sie Ihn über den Web-Manager bzw. durch Ausführung der pws.exe (X:windows\system\inetsrv\).
  2. Gehen Sie in das HTML Root Verzeichnis und legen Sie Ihre Homepage unter dem Namen "default.html" ab (ggfs. die MS Version überschreiben).
  3. Starten Sie Ihren Browser und gehen Sie zu der Adresse http://oemcomputer/.

Nun sollten Sie Ihre Homepage betrachten können. Ihr Server hat den Test bestanden.

 

Einrichtung von Script Interpretern

Während das Einrichten des Servers sehr einfach war, ist die Installation der Script Interpreter ein wenig schwieriger. Der Grund dafür liegt allerdings fast ausschließlich in der lückenhaften Dokumentation. Erfreulicherweise ist der Weg zur Einrichtung der Interpreter für alle Sprachen fast identisch.

  1. Installation des Interpreters

    Sie können sich die Interpreter für PERL und PHP3 kostenlos aus dem Internet downloaden. Bitte beachten Sie dass für das hier beschriebene System die "win32" Version benötigt wird. I.d.R. können Sie zwischen einer kompilierten Version und den Quelltexten wählen.

    Installieren Sie die Programme in ein lokales Verzeichnis (nicht in ein Webserver Verzeichnis). In diesem Beispiel werden folgende Pfade verwendet:

    - Perl c:\perl\bin\perl.exe
    - PHP3 c:\php\php.exe

    [zu CGI Basic kommen wir erst später, die BETA Version hat noch einige Schwächen und kann nur im CGI Webserver Verzeichnis ausgeführt werden]

    Nun können Sie Ihre Programme schon testen indem Sie sie über "Ausführen" bzw. unter DOS aufrufen. Der Versuch sie über den Server zu starten scheitert jedoch.


  2. Datei Verknüpfungen erstellen

    Um zu wissen was mit einem Dateityp geschehen soll wenn dieser aufgerufen wird (zB. 'gedoppelklickt'), muss eine Verknüpfung mit dem Interpreter Programm hergestellt werden. Dies kann man eigentlich auch über "Ordneroptionen-Dateityp" machen, aber hier wird der direkte Weg durch Eintragung in die Registrierung gewählt.

    Rufen Sie über die Startleiste "Ausführen" auf und geben Sie "regedit" ein um den Registrierungseditor zu starten.

    Wählen Sie den Schlüssel HKEY_CLASSES_ROOT und klicken sie mit der rechten Maustaste darauf. Wählen Sie im erscheinenden Popup-Menü den Eintag "Neu/Schlüssel" und geben Sie Ihm den Namen der Dateiendung Ihrer Scriptsprache (mit vorgestelltem Punkt):

    - Perl .pl
    - PHP3 .php3

    Machen Sie dann einen Doppelklick auf den Eintag (Standard) in der rechten Seite und geben sie einen Dateitypnamen ein. Z.B.:

    - Perl perl
    - PHP3 phpfile


    Sie können diese Schritte wiederholen falls sie noch alternative Dateiendungen mit dem Interpreter verknüpfen wollen.

    Abb.1 Registrierte PHP3 Dateiendungen



    In einem zweiten Schritt verknüpfen wir nun die eben registrierten Dateitypen mit dem Interpreter. Dazu erzeugen wir wie eben unter HKEY_CLASSES_ROOT wieder einen neuen Schlüssel und geben ihm den Namen des vorhin gewählten Dateitypnamens (in unserem Beispiel perl, phpfile).
    Nun wird's ein bisschen hektisch:

    - unter dem neuen Schlüssel legen wir wieder einen neuen an mit dem Namen"Shell"
    - darunter wieder einen Neuen mit dem Namen "open" und
    - darunter einen Letzten mit dem Namen "command".

    Jetzt müssen wir noch die Schlüssel mit Werten füllen. Markieren sie den Schlüssel "command" und machen Sie einen Doppelklick auf den Eintrag (Standard) auf der linken Seite. Der nun einzugebende Wert ist der Pfad zu Ihrem Interpreter und die übergeben Parameter (!).

    - Perl c:\perl\bin\perl.exe %1
    - PHP3 c:\php\php.exe -q %1

    Optional: Als letztes machen wir noch einen Doppelklick auf den (Standard) Eintrag unter unserem übergeordneten Dateityp Schlüssel und geben als Wert eine Beschreibung des Dateityps ein, z.B.:

    - Perl PerlScript
    - PHP3 PHP3Script


    Abb.2 Registrierte Standardoperation beim Öffnen von Dateien mit einer PHP3 Dateiendungen



    Nach dieser kleinen Strapaze sind wir mit dem ersten Teil der Registrierung fertig. Jetzt können wir den Registrierungseditor schließen. Zum Testen erstellen wir zwei Textdateien mit den Namen:

    - test.pl
    - test.php3

    Öffnen Sie die Dateien mit dem Editor und speichern Sie folgende Zeile ab:

    - print "Dies ist ein Test" (in test.pl)
    - <? echo " Dies ist ein Test"; ?> (in test.php3)

    Nach einem Doppelklick auf die Dateien sollte kurz die DOS-Box erscheinen und der Satz "Dies ist ein Test" ausgegeben werden. Ist dies nicht der Fall (Windows fragt womit die Datei geöffnet werden soll bzw. öffnet Sie mit dem Standard Programm für unbekannte Dateien), so war die Registrierung nicht erfolgreich. Gehen Sie noch mal alle Schritte in Ruhe durch.


  3. Dateiverknüpfung für den Server

    Obwohl Windows nun die Dateiverknüpfung kennt, kann der PWS nichts damit anfangen. Für den Server muss ein separater Eintag in der Registrierung vorgenommen werden. Das ist jedoch nicht soviel Arbeit:

    Öffnen Sie den Registriereditor und gehen Sie zu dem Schlüssel:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\Parameters\Script Map
    Hier werden nun die notwendigen Verknüpfungen für den PWS registriert. Klicken sie mit dem rechten Mausbutton auf den Schlüssel Script Map und wählen Sie aus dem Popup Menü "Neu/Zeichenfolge". Ein neuer Eintag auf der linken Seite erscheint dem Sie den Namen der Dateiendung (mit vorgestelltem Punkt) geben. Erzeugen Sie auf diese Weise zwei Schlüssel mit den Namen:

    - .pl
    - .php3

    Doppelklicken Sie den Eintag danach und geben Sie als Wert der Pfad zu dem Interpreter plus der Zeichenfolge " %s %s" an:

    - c:\perl\bin\perl.exe %s %s (.pl)
    - c:\php\php.exe %s %s (.php3)

    Abb.3 Registrierung der Scripte für den PWS



    Jetzt haben sie die Dateitypen auch dem Server bekannt gemacht. An dieser Stelle sollten Sie Ihren Rechner einmal komplett neu starten.

    Test:
    Nun wollen wir das ganze mal mit unserem Browser testen. Nehmen sie die zwei Dateien von eben und kopieren Sie sie in das Scriptverzeichnis des PWS (X: \Inetpub\scripts). Jetzt kommen wir auch endlich zu unserem CGIBasic Interpreter der in seiner BETA Version noch eine Sonderbehandlung benötigt: Er kann nicht außerhalb des PWS Script Verzeichnisses gestartet werden (Rechte Verletzung). Deshalb kopieren Sie nun die "cgibasic.exe" in das Script Verzeichnis (X: \Inetpub\scripts). Außerdem erzeugen sie nun eine dritte (Text-)Datei namens test.qba mit dem Inhalt:

    print "Dies ist ein Test"


    Nur im Scriptverzeichnis haben sie standardmäßig das Recht Dateien auszuführen. Mit Hilfe des Web-Managers können sie jedoch noch weitere Verzeichnisse erzeugen und diesen Rechte vergeben.

    Danach gehen Sie in Ihr HTML Root Verzeichnis (X:\Inetpub\wwwroot\) und öffnen Ihre "default.html" in einem Editor. Fügen sie an beliebiger Stelle innerhalb des <BODY> folgende drei Links ein ...

    <a href="http://oemcomputer/scripts/test.pl">Perl Test</a>
    <a href="http://oemcomputer/scripts/test.php3">PHP Test</a>
    <a href="http://oemcomputer/scripts/cgibasic.exe/test.qba">QBasic Test</a>

    ... und speichern Sie die Datei.



    Starten Sie Ihren Browser und geben Sie die Adresse "http://oemcomputer/" ein (ANMERKUNG: Ein Doppelklick auf die "default.html" öffnet diese zwar auch, jedoch nur als lokal Datei und nicht über den PWS). Auf Ihrer Homepage sollten Sie nun die drei Links finden.

    Nach dem Klicken auf einen der Links sollte nun das der Satz "Dies ist ein Test" in einem neuen Dokument erscheinen. Allerdings hat die Ausgabe des Perl und CGIBasic Scripts noch einen (Schönheits-)Fehler. Als Ausgabe erschein zuerst eine CGI Fehlermeldung die angibt, dass kein korrekter HTML Kode zurückgegeben wurde. Das ist nicht weiter tragisch denn schließlich haben wir diesen ja auch nicht in unserer Testdatei. Im Klartext wenn sie folgendes sehen:

    Abb.4 So schön können Fehler sein ... Der Interpreter funktioniert. ;)



    haben Sie alles richtig gemacht und Ihr Script wurde korrekt ausgeführt ;) Um auch noch die lästige Fehlermeldung los zu werden öffnen sie die Perl Datei test.pl und ersetzen den Inhalt durch:

    print<<"_END_";
    Content-Type: text/plain \n
    <HTML>
    Dies ist ein Test
    _END_

    In der CGIBasic Datei test.qba:

    PRINT "Content-Type: text/plain"
    PRINT ""
    PRINT "<HTML>"
    PRINT "Dies ist ein Test"
    END
    Durch den korrekten Header verschwindet nun auch die CGI-Fehlermeldung und ...




Impressum
 


Copyright 2002,2003 M. Schmitz