Publiziert als "Webserver am Desktop" in PCNEWS-128, Seite 15, April 2012. Link Eine Webanwendung beginnt am eigenen Schreibtisch. Zuerst sollte sie am eigenen Rechner laufen, bevor man beginnt, sie am Server zu installieren. Man vermeidet damit lange Fehlersuchzeiten, denn naturgemäß ist die Fehlersuche bei ausgelagerten Dateien schwerer als am lokalen Rechner. Das gilt nicht nur für Programme, die am Server laufen (ASP-, ASP.NET-, PHP-Programme) sondern auch für HTML-Dateien. Abgesehen vom Vorteil, dass man nie die laufende Anwendung bearbeitet sondern immer nur eine lokale Kopie.
Jeder Windows-Rechner ist auch ein Webserver. Der Webserver heißt Internetinformationsdienste. Die folgenden Angaben beziehen sich auf Windows 7 Ultimate/Professional Edition. Die Verwaltung des Webservers erfolgt über Start » Systemsteuerung » Verwaltung » Internetinformationsdienste (IIS)-Manager oder über Computer » ContextMenü » Verwalten » Dienste und Anwendungen » Internetinformationsdienste (IIS)-Manager Wenn dieser Eintrag fehlen sollte, dann muss man die Internetinformationsdienste installieren über Systemsteuerung » Programm und Funktionen » Windows-Funktionen aktivieren oder deaktivieren » Internetinformationsdienste einschalten
Bei der Aktivierung der Informationsdienste sieht man folgende Verwaltungskonsole:
Das Wurzelverzeichnis ist bei der ersten Inbetriebnahme c:\inetpub\wwwroot. Man kann (und soll) dieses Verzeichnis auf die Datenpartition verschieben, um eine Trennung zwischen Programm und Daten zu erreichen.
Den Server spricht man mit http://localhost (oder http://127.0.0.1) an. Es zeigt sich das folgende Bild:
Sieht man dieses Bild nicht, muss man die korrekte Funktion des Servers überprüfen. Ist der Webserver gestartet?Auf der linken Seite "Default Web Site" anklicken und auf der rechten Seite prüfen, ob der Punkt "Starten" ausgegraut ist. Wenn ja, ist der Server gestartet. Wenn der Punkt Starten aber grün ist, muss der Server gestartet werden. Wenn das nicht möglich sein sollte, muss man forschen. Start » Systemsteuerung » Verwaltung » Dienste » WWW-Publishingdient muss gestartet sein. Ist das richtige Verzeichnis eingestellt?In der Mitte unten auf Ansicht "Features" schalten, auf der rechten Seite in den Grundeinstellungen den Physikalischen Pfad kontrollieren.
Stimmen die Berechtigungen?Speziell bei Webs, die den Pfad auf anderen Laufwerken definieren, kann es Probleme mit den Berechtigungen kommen. Man kann mit dem ButtonGrundeinstellungen » Einstellungen testen prüfen, ob die Rechte richtig eingestellt sind.Ist der Application Pool gestartet? Wenn trotz dieser Kontrollen die Startseite nicht zu sehen ist, muss man überprüfen, ob der zu der Website Default Web Site gehörige Anwendungspool gestartet ist. Ein Anwendungspool ist eine Gruppe von Anwendungen, die in einem gemeinsamen Speicherbereich ablaufen. Üblicherweise kommen neue Anwendungen defaultmäßig in den DefaultAppPool und für die Testumgebung am lokalen Rechner muss man das auch normalerweise nicht ändern. Es kann aber dennoch sein, dass der Anwendungspool nicht gestartet ist. Welchem Anwendungspool ein Laufwerk angehört, sieht man in den Grundeinstellungen. Ob der Anwendungspool auch gestartet ist, sieht man unter Linke Spalte » Anwendungspools. Nicht gestartete Anwendungspools werden mit einem schwarzen Punkt markiert:
Stimmt die Bindung?Die Bindung ist die Summe der Einstellungen, die dem Webserver mitteilt, ob eine Anfrage der gerade bearbeiteten Anwendung zuzuweisen ist.
Lokaler DNSZur Zuweisung des Namens localhost zu der IP-Adresse 127.0.0.1 erfolgt in der Datei hosts im Pfad C:\Windows\System32\drivers\etcDiese Datei hat folgenden Inhalt: # Copyright (c) 1993-2006 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
127.0.0.1 rapid.localhost
::1 localhost
Wichtig sind nur die letzten Zeilen. Hier steht, dass auch die Schreibweise rapid.localhost dieser Adresse zuzuweisen ist. Hier könnte man alle Rechner des lokalen Netzes eintragen wie zum Beispiel192.168.0.2 franz Ein Tipp: Sollten sich in dieser Datei Einträge auf externe Adressen befinden, besteht höchster Verdacht auf Befall durch Schadsoftware. Üblicherweise kann diese Datei aber nicht editiert werden, man bekommt eine Fehlermeldung. Man geht so vor: Start » Zubehör » Editor » Kontextmenü » Als Administrator ausführen. Jetzt kann man die Date C:\Windows\System32\drivers\etc\hosts bearbeiten. Man sollte alle Webanwendungen am lokalen Server testen, auch dann, wenn es sich nur um Html-Dateien handelt. (Html-Dateien (auch Html_Dateien mit eingebettetem JavaScript) könnte man auch am Desktop und ohne Webserver testen.) Zum Testen serverseitiger Programme benötigt man aber immer einen Server. Diese Programme erkennt der Server an der Dateiendung .asp, .aspx, .php. Wenn eine solche Datei vom Server angefordert wird, dann wird der Kode der Datei zuerst dem betreffenden Interpreter übergeben und erst das Ergebnis dieses Vorgangs an den Client zurückgeschickt. Zur Unterscheidung zwischen Html-Kode und Programmkode gibt es besondere Markierungen. Grundsätzlich gilt, dass alles, was nicht ausdrücklich als Programmkode gekennzeichnet ist an den Client geschickt wird. Man kann daher eine .html-Datei in .asp, .aspx oder .php umbenennen und sie wird sich genau so, wie eine .html-Datei verhalten.
Ob ein Server diese Skriptmodelle auch ausführen kann, muss im Einzelfall geprüft werden. Der Clubserver kann die Skriptmodelle ASP, ASP.NET (Version 1.1, 2.0, 3.5) und PHP (Versionen 4.0 und 5.0) verarbeiten. Aufrüstung des lokalen WebserversDer Server am lokalen Windows-Rechner kann defaultmäßig ASP und ASP.NET interpretieren, muss aber für PHP aufgerüstet werden.Für die Aufrüstung des Webservers kann sich die Treiber bei den Seiten des betreffenden Herstellers besorgen. Aber diese Installationen können sehr komplex sein, wenn nämlich nicht nur das Programmpaket sondern auch noch eventuell dazu benötigte Ergänzungen installiert werden müssen. Zu Vereinfachung dieser Installationen kann man den Web Platform Installer, Version 3.0 verwenden. Man sucht das gewünschte Paket, zum Beispiel PHP, und klickt auf Hinzufügen. Den Rest erledigt der Installer. Sehr praktisch! Wenn man sich intensiv mit PHP beschäftigt, sollte sich auch das Verwaltungsprogramm PHP Manager für IIS installieren. ASPASP ist ein nicht mehr unterstütztes Modell. Um dennoch mit ASP arbeiten zu können, sind Einstellungsänderungen erforderlich. In den Einstellungen zur Default Website findet sich unter Anwendungsentwicklung der Punkt ASP. Hier muss man unter Debugeigenschaften den Punkt Fehler an den Browsersenden aktivieren, damit man auch erfährt, warum ein Programm nicht funktioniert. Nach dem Abschluss der Änderungen in der rechten Spalte aufÜbernehmen klicken.Damit wäre unser lokaler Server für die gängigsten Skriptsprachen vorbereitet. Der Webplatforminstaller kann aber viel mehr. Beispielsweise weiß er automatisch, was alles noch zu installieren ist, wenn ein bestimmtes Paket angefordert wird. Bei WebMatrix ist es zum Beispiel: WebMatrix (7MB), SQL Server Compact 4.0 (MB), SQL Server Compact 4.0 Tools (1MB), ASP.NET Web Pages (1MB), ASP.NET Pages Language Packs (1MB), SQL Server 2008 Management Objects (10MB), SQL Server Native Client (5MB), SQL Server-System-CLR-Typen (3MB), IIS 7.5 (3MB). Wer kann da schon den Überblick bewahren. Anmerkung: Der Webplatforminstaller installiert sich nicht als Programm sondern als Modul im Rahmen der Internetinformationsdienste. Dasselbe trifft für den PHP-Manager zu. Test der SkriptmodelleMan erstellt drei kleine Test-Dateien, die zeigen, ob der Server das Skriptmodell richtig verarbeitet. Man speichert diese Dateien unterc:\inetpub\wwwroot oder an dem Ort, an den man das Wurzelverzeichnis des Server verschoben hat.test.phptest.phpdownloaden • test.php ausführen
test.asptest.asp downloaden • test.asp ausführen
test.aspxtest.aspx downloaden • test.aspx ausführen
Wenn das betreffende Skriptmodell installiert ist, sieht man beide Zeilen; wenn nicht, gibt es zwei Möglichkeiten:
|