internet‎ > ‎develop‎ > ‎

Entwicklungsumgebung

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.


Die folgende Anleitung installiert keine komplexe Programmierumgebung sondern beschränkt sich auf die Bearbeitung einzelner Dateien, um die einzelnen Programmelemente besser zeigen zu können.

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

  • nein FTP-Server
  • ja Webverwaltungstools
  • ja WWW-Dienste
  • ja Microsoft .NET Framework 3.5.1

Bei der Aktivierung der Informationsdienste sieht man folgende Verwaltungskonsole:

Verwaltungskonsole der Internetinformationsdienste

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.

In diesem Verzeichnis befinden sich im Originalzustand zwei Dateien:

  • iisstart.htm
  • welcome.png

Den Server spricht man mit http://localhost (oder http://127.0.0.1) an. Es zeigt sich das folgende Bild:


Startbildschirm des Windows Webservers http://localhost

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.
Grundeinstellungen eines Webservers

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:

Gestarteter und angehaltener Anwendungpool
Normalerweise ist eine Unverträglichkeit von Anwendungen der Grund, sie in verschiedenen Anwendungspools zu verwalten. Bei der ersten Inbetriebnahme sollte ein solche Situation nicht auftreten.

Stimmt die Bindung?

Die Bindung ist die Summe der Einstellungen, die dem Webserver mitteilt, ob eine Anfrage der gerade bearbeiteten Anwendung zuzuweisen ist.
Bindungen einer Webseite
Diese Angaben sind: das Protokoll: http der Hostname: localhost der Port: 80 die IP-Adresse: * (alle eingestellten Adressen) Diese Grundeinstellungen sind für den lokalen Betrieb korrekt. Für das Testen von Anwendungen sind diese Einstellungen ausreichend. Der Webserver könnte aber auch dazu benutzt werden, Informationen im lokalen Netz zu verteilten. Dann ist der Hostname localhost nicht geeignet, denn jeder der Rechner im Netz ist so eingestellt und spricht über diesen Namen immer nur den eigenen Webserver an. Will man daher diesen Server von einem anderen Arbeitsplatz ansprechen, gibt es zwei Möglichkeiten:
  • Ansprache über die IP-Adresse (z.B. http://192.168.0.5)
  • Ansprache über einen neu vergebenen Namen (z.B. franz.localhost)

Lokaler DNS

Zur Zuweisung des Namens localhost zu der IP-Adresse 127.0.0.1 erfolgt in der Datei hosts im Pfad C:\Windows\System32\drivers\etc 
Diese 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 Beispiel
192.168.0.2 franz
192.168.0.3 florian
192.168.0.4 silvia

Das wiederholt man auf allen Rechnern des Netzes. Danach kann man die Webserver aller Rechner unter diesem Namen ansprechen: http://florian

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.

SkriptmodellSpracheBearbeitungKodebereichKommentar
ASPCScript, VBScriptInterpreter<% .. %><!-- .. -->
ASPXC#, VB.NETCompiler<% .. %>
<asp:..>..</asp:..>
<script..>..</script>
<%- .. -%>
PHPCInterpreter<?php .. ?><!-- .. -->

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 Webservers

Der 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.

ASP

ASP 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 Skriptmodelle

Man 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.php

test.phpdownloaden • test.php ausführen

1
2
<p>Diesen Text sieht man in jedem Fall</p>
<?php echo("<p>Diesen Text sieht man nur, wenn PHP aktiviert ist.</p>") ?>

test.asp

test.asp downloaden • test.asp ausführen

1
2
<p>Diesen Text sieht man in jedem Fall</p>
<% Response.Write("<p>Diesen Text sieht man nur, wenn ASP aktiviert ist.</p>") %>

test.aspx

test.aspx downloaden • test.aspx ausführen

1
2
<p>Diesen Text sieht man in jedem Fall</p>
<asp:Label runat="server" id="Label1">Diesen Text sieht man nur, wenn ASPX aktiviert ist.</asp:Label>

Wenn das betreffende Skriptmodell installiert ist, sieht man beide Zeilen; wenn nicht, gibt es zwei Möglichkeiten:
  • die jeweilige Endung .php, .asp oder .aspx wird vom Server bearbeitet aber das Skriptmodul reagiert nicht (oder der Kode enthält einen Fehler), dann sieht man nur die erste Zeile und danach eine Fehlermeldung
  • die jeweilige Endung wir vom Server nicht erkannt. Dann ist das Skriptmodell deaktiviert und man bekommt eine Fehlerseite zu sehen "Datei nicht vorhanden".
Comments