Personal Web Sharing: iMac als Web-Server
Denkt man an Web-Server, denkt man nur selten an den Macintosh. Doch bereits in der Grundausstattung eines kleinen iMac steckt viel Potential für den Web-Einsatz. Selbst ein CGI-Interface ist dabei. Dieser in Internet Professionell veröffentlichte Beitrag zeigt, wie Sie Ihren Mac in einen Web-Server verwandeln.
Seit dem Betriebssystem Mac OS 8.5 gibt es ihn gratis auf jedem Macintosh-Rechner: Den Mini-Server Personal Web Sharing. Auf den ersten Blick eignet sich dieser Server eher zum Freigeben von Dateien, die andere Rechner abholen oder für die Darstellung einfacher Seiten im Intranet.
Doch damit ist Personal Web Sharing unterfordert. Denn der Server bringt eine CGI-Schnittstelle mit. Und diese CGI-Fähigkeit von Web Sharing können Sie direkt nutzen, indem Sie sich mit der Scriptsprache Apple Script anfreunden.
Darüber hinaus verfügt Web Sharing über eine einfache Benutzerverwaltung für den Internet-Betrieb. Dabei arbeitet der Server mit der Datei- und Verzeichnisfreigabe des Apple-Betriebssystems zusammen.
Damit leistet Web Sharing genug, um eine einfache Web-Site zusammenzustellen und im Web zu veröffentlichen. Dieser Artikel zeigt Ihnen Schritt für Schritt, wie Sie Web Sharing einrichten, starten und als Web-Server nutzen. Zum Abschluss gibt es dann noch ein einfaches CGI-Beispiel in Applescript.
Web Sharing einrichten
Wenn Sie über einen normal und halbwegs frisch installierten Mac mit OS 8.5, besser mit OS 8.6, verfügen ist das Web Sharing bereits auf der Festplatte und muss nur noch gestartet werden.
Vorher allerdings sollten Sie sich vergewissern, dass das Netzwerkprotokoll TCP/IP auf Ihrem System eingerichtet ist und dass Ihr Mac über eine eigene IP verfügt. Dazu klicken Sie auf das Apfel-Symbol in der linken oberen Bildschirmecke des Mac-Desktops. Mit "Kontrollfelder -- TCP/IP" kommen Sie zur Netzkonfiguration. Wählen Sie hier den Verbindungstypen. In homogenen Mac-Netzen ist das normalerweise "AppleTalk (MacIP)", in heterogenen Netzen ist "Ethernet" wahrscheinlicher. Als Konfigurationsmethode wählen Sie "Manuell". Denn Ihr Webserver benötigt eine statische IP -- sonst findet niemand Ihre Webseiten.
Die IP-Adresse für die direkte Verbindung zum Internet bekommen Sie von Ihrem Provider. Hängt Ihr Mac im Intranet, sollten Sie sich mit dem Netzverwalter über die IP abstimmen. In diesem Beispiel kommt eine Adresse aus dem für Intranets reservierten Adressraum 192.168.0... zum Einsatz, die 192.168.0.40. Entsprechend setzen Sie die Teilnetzmaske auf "255.255.255.0". Bei der Router- und Name Server-Adresse geben Sie die jeweils die IP Ihres internen DNS-Servers und Routers ein oder die von Ihrem Provider zugewiesen IP-Nummern. Für einen ersten Versuch mit Web Sharing im Intranet können Sie diese Felder aber auch leer lassen.
Stimmt die TCP/IP-Einrichtung, starten Sie Web Sharing. Dazu klicken Sie wieder auf das Apfel-Menü und wählen aus "Kontrollfelder" den Eintrag "Web Sharing". Bevor Sie auf den Startknopf klicken, überprüfen Sie, ob Sie auch das richtige Verzeichnis freigeben. Für den ersten Test sollten Sie der Mac-Empfehlung folgen und als Web-Ordner den Eintrag "Macintosh HD:Web-Seiten:" und als Startdatei "startseite.html" eintragen. Der Button "Auswählen" hilft jeweils bei der Suche nach Verzeichnis und Datei.
Der erste Versuch
Nun kann es losgehen: Markieren Sie die Option "Benutzer dürfen nur lesen" und klicken Sie auf "Start". Nach kurzer Bedenkzeit meldet Web Sharing die IP Ihres Macintosh und ist einsatzklar. Dies prüfen Sie, indem Sie auf einem anderen Rechner im Netz einen Web-Browser aufrufen und als Adresse die IP Ihres Web Sharing Servers eintippen, zum Beispiel "http://192.168.0.40/. Steht gerade kein anderer Computer in der Nähe, rufen Sie auf Ihrem Mac einen Browser auf und geben Sie entweder die IP oder die Adresse "localhost" ein. Damit spricht der Browser den lokalen Rechner via TCP/IP an.
In allen Fällen sollte der Inhalt der Datei "startseite.html" erscheinen -- eine Kurzanleitung für das Web-Sharing. Übrigens: Wenn Sie bei Altavista oder einem anderen Suchdienst den Begriff "Personal Web Sharing" eingeben, werden Sie einige Seiten mit eben diesen Anleitungen -- ein Indiz dafür, dass einige Homepage-Besitzer Ihre Web-Seiten über einen Mac online stellen.
Zugriffsrechte vergeben
Aus Sicherheitsgründen sollten Sie einen Ordner für den Web-Betrieb bestimmen, keinesfalls sollten Sie Ihre gesamte Festplatte freigeben. Wenn Sie die Option "Benutzer dürfen nur lesen" eingeschaltet haben, kann nichts schief gehen: ein Schreibzugriff auf die Dateien bleibt ebenso ausgeschlossen wie ein Zugriff auf andere Verzeichnisse des Web Sharing Servers.
Wenn Sie einen geschützten, nur für bestimmte User zugänglichen Bereich anlegen wollen, schalten Sie zunächst im Web Sharing-Fenster die Option "Zugriffsrechte von File Sharing verwenden" ein. Der Server warnt Sie dann, den Hauptordner "Web Seiten" auf jeden Fall als Gemeinschaftsordner freizugeben, damit Web-User diesen nutzen können. Um das zu prüfen, klicken Sie im Finder auf den Ordner "Web-Seiten". Wählen Sie dann das Menü "Ablage -- Information -- Gemeinsam nutzen". Sicherheitshalber schalten Sie die Option "Bewegen, Umbenennen und Löschen verbieten" ein. Diese Option schützt den Ordner vor versehentlichem Löschen oder Verschieben -- eine solche Aktion wäre im laufenden Web-Betrieb fatal.
Unter "Eigentümer und Mitbenutzer" sollte jeweils nur Ihre eigene Benutzerkennung stehen. In der dritten Zeile sind die Zugriffsrechte für "Jeder", also alle anderen User festgelegt. Hier sollte nur das Brillensymbol für "Nur lesen" sichtbar sein. Sofern Sie bereits weitere Ordner für den allgemeinen Zugriff eingerichtet haben, klicken Sie auf "Rechte auf alle enthaltenen Ordner... Übertragen". Das spart einige Arbeit.
Nun, da der allgemeine Zugriff geklärt ist, richten Sie ein eigenes Verzeichnis für interne Zwecke unterhalb des Ordners "Web-Seiten" ein. In diesem Beispiel heißt das Verzeichnis "Intern". Markieren Sie diesen Ordner und rufen Sie noch einmal "Ablage -- Information -- Gemeinsam nutzen" auf. Schalten Sie hier zunächst neben "Jeder" die Zugriffsrechte auf "Keine". Bei "Mitbenutzer" klicken Sie auf den aktuell eingetragenen Namen und wählen aus dem Popup-Menü den User oder die Gruppe, die Zugriff auf den internen Bereich erhalten soll. Sofern noch keine Gruppen definiert sind, klicken Sie auf "Benutzer & Gruppen öffnen".
Hier fügen Sie mit "Neuer Benutzer" einen frischen Account hinzu oder definieren eine "Neue Gruppe". In die Gruppe bauen Sie die Benutzer per Drag and Drop ein. Ist diese Arbeit erledigt, tragen Sie die entsprechende Gruppe bei "Mitbenutzer ein" und geben ihr die Berechtigung "Nur lesen". Wenn sich im "Intern"-Ordner schon weitere Verzeichnisse befinden, sollten Sie abermals die "Rechte auf alle enthaltenen Ordner..." "Übertragen".
Der zweite Versuch
Nun steht der zweite Versuch an. Füllen Sie das interne Verzeichnis mit Dateien, beispielsweise mit einer welcome.html. Rufen Sie nun in Ihrem Browser http://192.168.0.40/intern/welcome.html auf. Nun sollte eine Kennwortabfrage erscheinen, in die Sie Usernamen und Passwort eingeben. Die Eingabe eines Gruppennamens bringt übrigens keinen Erfolg. Klappt die Verbindung, haben Sie schon einen vollwertigen Webserver samt geschütztem Bereich und Benutzerverwaltung.
Nur eines stört: Ruft ein Websurfer auf Ihrem Server nur ein Verzeichnis aus, also beispielsweise "http://192.168.0.40/test/", erhält er anstelle einer Default-Datei eine Liste mit den im Unterverzeichnis enthaltenen Files. Das stört nicht nur, sondern bildet auch eine potentielle Sicherheitslücke.
Abhilfe schafft eine Datei mit dem Namen "index.html". Befindet sich die in einem Unterverzeichnis, ruft der Server dieses File automatisch auf, sobald er in den Ordner wechselt. Allerdings funktioniert dieses Verfahren nur, wenn im Web Sharing explizit keine Startseite festgelegt wurde. Das klingt paradox, aber das ist Macintosh-Logik. Klicken Sie also im Web Sharing-Fenster neben "Startseite" auf "Auswählen" und dann auf "Keine". Aber Achtung: Wenn in einem Ordner keine Datei mit dem Namen "index.html" vorhanden ist, zeigt der Server den Verzeichnisinhalt.
Weitere Optionen
Für das Web Sharing stehen noch einige weitere Optionen bereit. Rufen Sie unter "Bearbeiten" den Menüpunkt "Voreinstellungen" auf. Hier finden Sie auf dem Karteireiter "Optionen" eine Checkbox, um die Protokollfunktion einzuschalten. Web Sharing legt dann eine Logdatei im Verzeichnis "Systemordner/Preferences/Web Sharing Ordner" an. Die lässt sich am besten mit einer Textverarbeitung wie Word einsehen.
Die zweite Option definiert den Port, auf dem der Web Server Anfragen erwartet. Hier sollten Sie es bei der 80 belassen. Wenn Sie einen anderen Port wählen, müssen Sie im Browser an die URL entsprechend diesen Port anhängen, also zum Beispiel "http://192.168.0.40:2000/welcome.html".
Die beiden Schaltflächen für "Aliasdateien..." und "Gäste mit Schreibzugriff..:" lassen Sie am besten deaktiviert. Das schließt potentielle Sicherheitslücken. Wenn Sie aber andere Ordner über das Web Sharing zugänglich machen wollen, aktivieren Sie "Aliasdateien dürfen Objekte..." und ziehen Sie ein Alias des entsprechenden Ordners in das Web-Sharing-Verzeichnis.
Schließlich schafft das Betriebssystem mehr Platz für den Webserver, wenn Sie die Speicherzuteilung ändern. Für Testzwecke reicht die Voreinstellung mit 1200 KB aus, im Webeinsatz sollten Sie ruhig 4800 KB freigeben -- das beschleunigt den Server. Denken Sie daran, alle Änderungen mit einem "Sichern" zu bestätigen.
Die zweite Rubrik legt die MIME-Typen fest, die Ihr Server anbietet. Hier sind im Normalfall keine Änderungen notwendig. Hinter dem dritten Karteireiter "Aktionen" verbirgt sich die CGI-Automatik des Web Sharing Servers: Hier starten Sie CGI-Programme vor oder nach dem Laden einer Seite oder bei einer bestimmten Dateiendung. Auf Wunsch verarbeitet der Server auch ein Filterprogramm vor der Verarbeitung der URL.
CGI mit Web Sharing
CGI-Programme lassen sich ohne Probleme in den Web Sharing Server einbinden -- wenn man ein paar Kleinigkeiten beachtet. Als Sprache für die CGI-Programme bietet sich Applescript an. Allerdings erschließt sich dessen Sprachkonzept nur dem, der Perl und C vergisst und sich an neue Syntax und einige seltsame Spracheigenschaften gewöhnen mag. Doch für einfache Aufgaben ist die Sprache allemal geeignet.
Ein einfaches Apple Script sieht so aus:
property crlf : (ASCII character 13) & (ASCII character 10)
property http_header : "HTTP/1.0 200 OK" & crlf & "Server: WebCenter" & crlf &
"MIME-Version: 1.0" & crlf & "Content-type: text/html" & crlf & crlf
on handle CGI request searching for http_search_args
from address client_address
from user username
using password kennwort
from server server_name
via port server_port
executing by script_name
from browser user_agent
try
set meldung to "<b>Willkommen auf
dem Personal Web Sharing Server</b><br>
Hier einige Informationen:<br><br>"
set return_page to "Port: " & server_port & "<BR>" &
"Parameter in URL: " & http_search_args & "<BR>" &
"Client Adresse: " & client_address & "<BR>" &
"Username: " & username & "<BR>" &
"Password: " & kennwort & "<BR>" &
"Name des Servers: " & server_name & "<BR>" &
"Name des Scripts: " & script_name & "<BR>" &
"User Agent (Browser): " & user_agent & "<BR>"
return http_header & meldung & return_page
on error error_message
return http_header & "Ein Fehler ist aufgetreten: " & error_message
end try
end handle CGI request
Um das Listing einzugeben öffnen Sie den Skripteditor im Ordner "Apple Extras -- AppleScript". Speichern Sie das fertige Skript im Ordner "Web-Seiten". Ganz wichtig: Klicken Sie beim Speichern die Optionen "Nicht automatisch beenden" und "Kein Startdialog" an. Vor allem die erste Option ist unerlässlich -- das Skript arbeitet sonst nicht mit dem Server zusammen. Als "Art" wählen Sie "Skriptprogramm".
Das Programm selbst zeigt lediglich eine kurze Meldung und einige Parameter, die ihm von der CGI-Schnittstelle mitgegeben wurden. Etwas mehr zu den CGI-Parametern finden Sie in der Online-Hilfe zu Applescript. Allerdings lässt die Hilfe den Programmierer mit ein paar kurzen Angaben alleine. Mehr verrät Apple unter der Web-Adresse http://developer.apple.com/techpubs/ macos8/InterproCom/AppleScriptScripters/applescriptscripters.html.
Das Skript initialisiert den obligatorischen http-Header, der vor jeder Datenrückgabe an den Server notwendig ist. Danach setzt das Programm den String "meldung" zusammen und kümmert sich dann um "return_page". Diese Variable bildet sich aus den Inhalten der CGI-Parameter gemischt mit einigen HTML-Anweisungen. Schließlich gibt eine return-Anweisung das Ergebnis an den Server und damit an den Browser zurück.
Personal Web Sharing sieht kein eigenes Verzeichnis für CGI-Dateien vor. Vor allem aber bietet das Dateisystem kein Executable-Flag. Das bedeutet, ein CGI-Programm muß für jeden lesbar sein, der es ausführen will. Das kann unter Umständen zu Sicherheitsproblemen führen. Setzen Sie CGI-Programme also nur ein, wenn nötig und achten Sie darauf in den Programmen selbst keine Hinweise auf sicherheitsrelevante Daten in zu geben.
Fazit:
Erst mit den CGI-Programmen erschließt sich das gesamte Potential des Personal Web Sharing. Für einfache Aufgaben im World Wide Web ist der Server sehr gut geeignet. Der Verwaltungsaufwand bleibt sehr gering. Allerdings erkauft man sich die Einfachheit mit einigen Kompromissen in der Leistungsfähigkeit. Doch für eine kleine Homepage im Web ist Personal Web Sharing gut geeignet.





