SELFHTML: Webserver/CGI / Webserver / Webserver lokal auf einem PC einrichten
Author: Redaktion SELFHTML, selfhtml81@selfhtml.org
Description: Wie Sie auf einem PC eine HTTP-Server-Umgebung einrichten, um CGI-Scripts in Ruhe und offline auszutesten.
Keywords: SELFHTML, CGI, Webserver, Webserver, Webserver, HTTP, personal server
Date: 2005-08-22T21:21:39+02:00

| # Webserver lokal auf einem PC einrichten
| Der eigene Webserver Geeignete Produkte Grundeinstellungen für den lokalen Betrieb

## Der eigene Webserver

Viele PC-Anwender mit Internet-Zugang verbinden mit dem Begriff "Webserver" eine Art Großrechner, auf dem die Daten liegen, die im Internet zu sehen sind. Eigentlich ist ein Webserver jedoch eine gar nicht besonders große Software, die im Prinzip auf jedem Rechner laufen kann, also nicht nur auf Server-Rechnern im Internet, sondern auch auf jedem PC. Es ist nicht einmal eine Internet-Verbindung erforderlich, um einen Webserver zu betreiben. Es müssen lediglich TCP/IP-Sockets unterstützt werden (unter Windows zum Beispiel ist die Datei winsock.dll dafür zuständig). Wenn Ihr Betriebssystem also TCP/IP-Sockets unterstützt, sind bereits alle Voraussetzungen erfüllt, um einen Webserver offline und ohne Verbindungskosten zu betreiben. Browser und Webserver laufen dann auf demselben Rechner, können aber so miteinander kommunizieren, wie es bei Online-Verbindungen ins Internet üblich ist.

Einen eigenen Webserver sollten Sie sich im hier behandelten Zusammenhang installieren, um lokal auf Ihrem PC eine CGI-Schnittstelle zu haben. Denn CGI funktioniert nur, wenn ein Webserver vorhanden ist. Vieles, was im WWW mit CGI möglich ist, können Sie dann auch lokal auf Ihrem PC realisieren. So können Sie eigene CGI-Scripts während der Erstellungsphase in Ruhe und ohne Online-Kosten austesten. Sie können dann genauso arbeiten, wie Sie es von HTML-Dateien oder JavaScripts her gewohnt sind. Außerdem bekommen Sie eher ein Gefühl für die Zusammenarbeit von Browser und Webserver.

Auch wenn Sie selber Provider sind, eine Standverbindung ins Internet haben und einen öffentlichen Webserver betreiben, ist es sinnvoll, auf einem separaten Arbeitsrechner einen lokalen Webserver einzurichten. So belasten Sie den öffentlichen Rechner nicht, während Sie CGI-Scripts erstellen und austesten.

Ein lokal installierter Webserver beeinträchtigt Ihren vorhandenen Internet-Zugang nicht. Er benutzt lediglich das TCP/IP-Protokoll Ihres Rechners (z.B. die winsock.dll). Einstellungen, die für Ihre Online-Verbindung ins Internet wichtig sind, interessieren den Webserver nicht und können unverändert bleiben.

Ein installierter Webserver ist bei bestehender Internet-Verbindung über das Web erreichbar, sofern Sie den PC nicht in einem geschützten lokalen Netz betreiben oder mit zusätzlicher Schutz-Software (Firewall-Software) ausgestattet haben. Denn bei jeder Verbindung ins Internet sind Sie mit einer eindeutigen IP-Adresse angemeldet. Entweder haben Sie von Ihrem Provider eine feste IP-Adresse erhalten, oder die IP-Adresse wird bei der Einwahl ins Internet dynamisch vom Einwahl-Server vergeben. Unter Windows (Windows 9x) können Sie bei bestehender Internet-Verbindung im Windows-Verzeichnis das Programm winipcfg.exe aufrufen, um die eigene IP-Adresse zu sehen, ab Windows 2000 nutzen Sie dazu die cmd.exe (Eingabeaufforderung), und geben dort ipconfig ein, um sich die Windows-IP-Konfiguration anzeigen zu lassen. Angenommen, Sie sind mit der IP-Adresse 145.233.101.211 angemeldet, dann ist Ihr lokales Web bei laufendem Webserver über das Internet unter der Adresse http://145.233.101.211/ erreichbar. Diese Adresse muss ein fremder Benutzer natürlich erst mal kennen. Aber wenn er sie kennt oder herausfindet, kann er auf Ihrem PC in dem Verzeichnisbereich, der durch den Webserver festgelegt ist, "surfen". Das kann Vor- und Nachteile haben. Einerseits können Sie auf diese Weise anderen Personen Ihre Web-Seiten zeigen, ohne diese auf einen öffentlichen Rechner hochladen zu müssen. Andererseits könnte ein ungebetener Besucher versuchen, auf Ihrem PC herumzuspionieren.

## Geeignete Produkte

Erfreulicherweise gibt es im Internet verschiedene Webserver zum Downloaden, die Freeware oder Shareware sind, d.h. diese Produkte kosten nichts oder erfordern erst nach einer kostenlosen Testphase eine geringe Registriergebühr. Zum lokalen Einsatz sind solche Produkte völlig ausreichend. Der im Internet am meisten verbreitete Webserver Apache ist auch für typische PC-Betriebssysteme wie Windows verfügbar. Angesichts der Tatsache, dass dieses Produkt längst auf der Mehrzahl der Server im Internet seinen Dienst tut, ist er wohl das empfehlenswerteste Produkt.

Im Link-Verzeichnis des Online-Angebots von SELFHTML aktuell finden Sie eine Produktübersicht mit Links zu den Anbietern:

SELFHTML-Linkverzeichnis: Server-Software

Auf den Anbieterseiten können Sie die Produkte in der Regel downloaden.

## Grundeinstellungen für den lokalen Betrieb

Ein Webserver ist kein Programm mit "Arbeitsoberfläche". Durch den Aufruf der ausführbaren Programmdatei starten Sie einfach den Server-Betrieb. Ihr Browser ist dann in der Lage, mit diesem Server auf Ihrem Rechner zu kommunizieren, genau so, wie der Browser mit jedem öffentlichen Webserver kommunizieren kann. Bevor das richtig funktioniert, müssen Sie den Webserver jedoch einrichten, d.h. wichtige Grundeinstellungen vornehmen.

Einige Webserver können Sie nach dem Starten dialoggesteuert einrichten (z.B. OmniHTTPd für Windows oder Quid Pro Quo für Macintosh), bei anderen Produkten richten Sie den Webserver vor dem ersten Starten durch Editieren von Konfigurationsdateien ein (beim Apache ist dies z.B. die Datei httpd.conf im Programmunterverzeichnis conf). Einige Produkte laufen unter Windows in einem DOS-Fenster (z.B. Apache), können auf moderneren Systemumgebungen aber auch als Hintergrunddienste eingerichtet werden. Suchen Sie im Zweifelsfall nach der Installation des Webservers in dessen Programmverzeichnis nach Hilfedateien. Dort sollte dokumentiert sein, wie Sie Ihren Webserver einrichten können. Alle Einstellungen bleiben auf jeden Fall gespeichert. Wenn Ihr Webserver also erst einmal funktioniert, brauchen Sie ihn nur noch durch Starten und Beenden der Programmdatei ein- und auszuschalten. Das können Sie in der Regel auch mit Hilfe einiger bei der Installation erzeugter Einträge im Startmenü erreichen.

Folgende wichtige Daten müssen Sie nach Wunsch bzw. korrekt einstellen:

- IP-Adresse und Hostnamen des Servers
  Für den lokalen Betrieb müssen Sie hier normalerweise die reservierte IP-Adresse `127.0.0.1` oder den reservierten Hostnamen `localhost` eintragen. Wenn die Angaben nicht funktionieren, versuchen Sie, in den Hilfedateien Informationen zu finden, oder setzen Sie sich mit dem Produktanbieter des Webservers über dessen Homepage (nach E-Mail-Adresse suchen!) in Verbindung. Wenn die Angaben funktionieren, können Sie im Browser nach Einschalten des Webservers lokal gespeicherte HTML-Dateien über die Internet-Adressen http://127.0.0.1/ oder http://localhost/ aufrufen.
- Port des Servers
  Dabei ist normalerweise `80` einzutragen. Ports sind Nummern für TCP/IP-Dienste auf dem betreffenden Rechner. Für häufig genutzte Dienste sind so genannte Well Known Ports festgelegt. Das heißt, diese Portnummern werden von Clients wie Browsern oder FTP-Programmen standardmäßig verwendet, sofern nicht explizit anders angegeben. Für den Dienst FTP sind beispielsweise 20 und 21 die üblichen Portnummern, für den HTTP-Dienst ist es 80. Lesen Sie jedoch sicherheitshalber in der Dokumentation des Webservers nach, welche Nummer Sie hier eintragen sollten.
- HTTP-Wurzelverzeichnis für HTML-Dateien (document root)
  Dabei geben Sie entsprechend der Syntax Ihres Betriebssystems den Pfadnamen an, unterhalb dessen sich Ihre lokalen HTML-Dateien befinden. Wenn Sie Windows benutzen, könnten Sie hier z.B. `c:\www\daten` eingeben - je nachdem, wohin Sie Ihre lokale HTML-Einstiegsdatei abgelegt haben. Wenn Sie in diesem Verzeichnis beispielsweise eine Datei myhome.htm haben, können Sie diese Datei bei eingeschaltetem Webserver mit Ihrem Browser via HTTP-Protokoll über http://127.0.0.1/myhome.htm bzw. http://localhost/myhome.htm aufrufen.
- Default-HTML-Dateiname für Verzeichnisse
  Die häufigsten Namen dafür sind `index.html` oder `index.htm`. Wenn es eine HTML-Datei mit dem entsprechenden Namen in einem Verzeichnis gibt, genügt als URI beispielsweise http://127.0.0.1/verzeichnis/, wobei dann automatisch http://127.0.0.1/verzeichnis/index.html aufgerufen wird.
- Physisches und virtuelles Verzeichnis für CGI-Scripts
  Als physisches Verzeichnis geben Sie entsprechend der Syntax Ihres Betriebssystems den Pfadnamen des Verzeichnisses an, in dem Sie ausführbare CGI-Scripts ablegen wollen. Der übliche Verzeichnisname dafür ist cgi-bin. Wenn Sie beispielsweise Windows benutzen, könnten Sie hier z.B. `c:\www\cgi-bin` eingeben - je nachdem, wohin Sie die CGI-Scripts ablegen wollen. Das betreffende Verzeichnis müssen Sie erstellen. Außerdem müssen Sie bei den meisten Webservern ein virtuelles CGI-Verzeichnis angeben. Tragen Sie dabei am besten `/cgi-bin` ein. Wenn Sie dann beispielsweise ein Perl-Script namens guestbook.pl im Verzeichnis c:\www\cgi-bin ablegen, können Sie es mit http://127.0.0.1/cgi-bin/guestbook.pl bzw. http://localhost/cgi-bin/guestbook.pl ausführen.
- Perl-Interpreter und andere Interpreter
  Um Perl-Scripts als CGI-Scripts ausführen zu können, müssen Sie den vollständigen Pfadnamen der ausführbaren Perl-Interpreter-Datei angeben. Unter Windows müssen Sie beispielsweise `c:\programme\perl\bin\perl.exe` eingeben, je nachdem, wo sich die ausführbare Programmdatei befindet. Dazu müssen Sie Perl bzw. den Perl-Interpreter installieren.
- Log-Dateien
  Die meisten Webserver führen "Logbücher" über alle HTTP-Zugriffe auf Dateien oder CGI-Programme. Das sind die standardisierten Log-Dateien. Es gibt zwei wichtige Log-Dateien: eine für die Protokollierung der Zugriffe (access.log) und eine für Fehlerprotokollierung (error.log). Tragen Sie am besten diese typischen Namen ein, falls Ihr Webserver keine Standard-Festlegungen dafür aufweist. Diese Dateien können Sie übrigens jederzeit mit einem Dateibetrachter oder Texteditor einsehen, sie zeigen Ihnen wichtige Informationen, wenn es Probleme während des laufenden Serverbetriebs geben sollte.
- Timeouts
  Es gibt zeitliche Grenzwerte dafür, wie lange der Browser auf eine Antwort vom Server warten soll, und wie lange der Server versuchen soll, Daten an den Browser zu schicken. Die Angaben erfolgen in der Regel in Form von Sekunden. Tragen Sie z.B. für Senden und Empfangen `60` (= eine Minute) ein.
- MIME-Typen
  MIME-Typen legen in diesem Zusammenhang die Dateiformate fest, die der Webserver kennt und bereit ist, an den aufrufenden Browser zu übertragen. Andere Dateitypen als die hier angegebenen sendet der Server nicht mit dem korrekten MIME-Typ, bzw. mit dem eingestellten Standard-MIME-Typ (`text/plain` beispielsweise). Normalerweise sind bereits alle wichtigen Dateitypen vorkonfiguriert. Um einen bestimmten Dateityp (z.B. Excel-Dateien) hinzuzufügen, müssen Sie einen MIME-Typ-Namen (z.B `application/ms-excel`) und eine typische Dateinamenendung (z.B. `.xls`) angeben. Dann ist der Server bereit, auch solche Dateien mit dem richtigen MIME-Typ an den Browser zu übertragen. Der Browser muss natürlich wissen, was er mit dem betreffenden Dateityp tun soll (siehe hierzu den Abschnitt Verweise auf beliebige Dateien im Internet.

Es gibt weitere Einstellmöglichkeiten. Wenn Sie die oben genannten Einstellungen korrekt vorgenommen haben, sollte Ihr Webserver für den lokalen Betrieb jedoch betriebsbereit sein.

| Der Apache HTTP-Webserver
| Rechtliche Aspekte von Web-Projekten

© 2007 Impressum