Webserver auf CD
Das mobile Web
Dynamische Seiten und Datenbanken
Webserver auf CD
Früher war es einfach, eine Website auf CD-ROM zu bannen und von dort anzuzeigen. Die Internetseiten waren statische HTML-Seiten und konnten mit einem Doppelklick von CD gestartet werden. Heute ist das meist nicht mehr so einfach. Kaum eine größere Webseite kommt noch ohne Skriptsprachen wie PHP, Perl, ASP oder JSP aus. Von datenbankbasierten Anwendungen ganz zu schweigen. Dennoch haben Web-Anwendungen auf CD-ROM in vielen Fällen eine Existenzberechtigung. Hier einige Anwendungsmöglichkeiten und Vorteile:
– Sie möchten eine Website bei einem Kunden präsentieren, der Präsentationsrechner hat, aber keinen installierten Webserver.
– Die Anwendung steht auch auf Rechnern zur Verfügung, die über keine oder nur eine langsame Internetanbindung verfügen, auch unterwegs auf dem Notebook.
– PHP-Anwendungen können sowohl im Internet, als auch auf CD verwendet werden, ohne dass sie umgeschrieben werden müssen.
– Für die Erstellung optisch ausgefallener Oberflächen auf CD-ROM müssen keine neuen Techniken erlernt werden. Die gleichen Entwickler erstellen sowohl die CD als auch die Internetanwendung.
Einsatzgebiete
Webserver auf CD
Die möglichen Anwendungen sind vielfältig. Sie reichen von durchsuchbaren Datenbanken bis hin zu komplexen Anwendungen mit dynamischen Inhalten. Oder stellen Sie sich eine kleine PHP-Anwendung vor, die alle PDF-Dateien eines Verzeichnisses ausliest und dem Benutzer als Links zur Verfügung stellt. Ein wenig optischer Feinschliff, und Sie haben eine kleine Kataloganwendung auf CD-ROM. Erweitern Sie diese noch um eine Suchfunktion und Sie besitzen eine komplette Anwendung, mit der Sie lange Zeit glücklich sein werden. In Zukunft müssen Sie nur noch die kleine Anwendung und die neuesten PDF-Dateien auf CD kopieren, und fertig ist eine aktuelle Version des Katalogs.
Jede PHP-Applikation braucht einen Webserver, um lauffähig zu sein. Nun sind Webserver in der Regel nicht darauf ausgelegt, von einer CD-ROM zu laufen. Ohne spezielle Software und Anpassungen kommt man hier nicht weiter. Der Benutzer soll nach Möglichkeit von allem nur den Browser mit der Anwendung bemerken. Alle notwendigen Server-Anwendungen sollten daher im Hintergrund und für den Benutzer nicht sichtbar ihr Werk versehen. Ebenso muss ein Webserver für CD-ROM auch deutlich flexibler sein als sein Kollege im Internet. Dieser findet immer dieselbe Umgebung vor. Jeder Benutzerrechner ist im Gegensatz dazu unterschiedlich ? sowohl das Betriebssystem, die Speicherausstattung, die IP-Adresse und die freien Ports variieren. All dies muss von einem CD-ROM-Webserver berücksichtigt werden.
Microweb von Indigostar
Webserver auf CD
In diesem Artikel wird der Fokus auf einen Webserver gerichtet, der speziell für CD-ROMs ausgelegt ist und all die zuvor genannten Eigenschaften und Funktionen mitbringt. Microweb von Indigostar ist ein Tool, das bereits seit einigen Jahren auf dem Markt ist und sich durch Stabilität und Funktionsfülle auszeichnet. Es ist als Shareware unter www.indigostar.com/microweb erhältlich und unter allen gängigen Windows-Versionen lauffähig. Die Shareware-Version ist durch einen Hinweis beim Start eingeschränkt, die Vollversion ohne Einschränkungen kostet 299 Dollar.
Für diesen Workshop dient die Version 1.30 als Basis. Neben dem Webserver sind auch PHP 4.3.3, MySQL 4.0.16, Perl 5.6.1 sowie SQLite enthalten. Nach dem Download und Entpacken ist Microweb sofort einsatzfähig. Mit der Datei microweb.exe wird der Webserver gestartet. Dieser öffnet automatisch den Browser mit der Default-Webseite von Microweb. Mit den dort vorhandenen Testskripts können Sie die Lauffähigkeit des Systems überprüfen.
Viel interessanter sind aber eigene Skripts und Programme. Im Folgenden erfahren Sie, was Sie alles beachten müssen, um eigene datenbankbasierte PHP-Skripts und -Anwendungen mit Microweb auf CD lauffähig zu machen.
Die Server-Umgebung
Webserver auf CD
Zwei Verzeichnisse sind per Voreinstellung für Ihre Daten vorgesehen. Wollen Sie eine Datenbank auf CD verwenden, muss diese im Verzeichnis dbdir untergebracht werden. Der Ordner htdocs beherbergt alle HTML-, PHP- und Grafikdateien. Den installierten Inhalt können Sie bedenkenlos entfernen, um Platz für Ihre eigenen Skripts zu schaffen. Am besten wagen Sie Ihre ersten Schritte mit einer bereits bestehenden Internet-Seite, die Sie in das htdocs-Verzeichnis kopieren. Nach dem Starten von microweb.exe werden Sie diese Seiten im Browser sehen können.
Fallstricke
Webserver auf CD
Einige Dinge gilt es zu beachten, um existierende Anwendungen auf CD laufen zu lassen oder die gleiche Code-Basis sowohl auf CD als auch im Internet zu verwenden. Der folgende Abschnitt widmet sich den kleinen Klippen, die es zu umschiffen gilt. Oftmals ist es für das Skript notwendig zu wissen, ob es von CD-ROM ausgeführt wird oder nicht. Entsprechend können eventuell unterschiedliche Code-Teile ausgeführt werden. Die folgende Funktion liefert true zurück, wenn das Skript von CD verwendet wird.
function isCdRom() {
$soft = $_SERVER["SERVER_SOFTWARE"];
$is = explode("/", $soft);
if ($is[0] == "MS-MFC-MicroWeb")
return true;
else
return false;
}
Daten schreiben
Webserver auf CD
Schreiben Sie eine Internet-Anwendung, brauchen Sie sich in der Regel keine Gedanken machen, wenn Sie Dateien nicht nur lesend, sondern auch schreibend bearbeiten möchten. In einer CD-ROM-Umgebung ist das systembedingt etwas anders. Hier kann keine Datei erstellt oder verändert werden. Sie können allerdings auf das temporäre Verzeichnis von Windows zurückgreifen, um dort eine Datei zur weiteren Verarbeitung zu speichern. Den Pfad bekommen Sie einfach aus der PHP-Server-Variable:
$strPath = $_SERVER["TEMP"];
In diesem Pfad können Sie problemlos kopieren, öffnen, bearbeiten und speichern. Aber bedenken Sie dabei immer, dass die Inhalte in diesem Verzeichnis nicht von Dauer sind. Eventuell sind sie beim nächsten Start der Applikation schon wieder gelöscht.
Arbeit mit Datenbank
Webserver auf CD
Ein Sonderfall für eine beschreibbare Datei wäre auch eine veränderbare SQLite-Datenbank. Microweb bietet von Haus aus leider keine Unterstützung für beschreibbare Datenbanken. Daher müssen Sie zu einem kleinen Trick greifen. Wie gerade beschrieben wird die Datenbankdatei vor ihrer ersten Benutzung in das temporäre Verzeichnis von Windows kopiert. Die folgende PHP-Funktion erledigt das für Sie:
function copyDatabase($dbPath, $dbName) {
$temp = $_SERVER[["TEMP"]."/database/";
$temp = strreplace("\\","/", $temp);
if (!file_exists($temp.$dbName)) {
@mkdir($temp);
@copy($dbPath.$dbName, $temp.$dbName);
}
}
Aufgerufen wird die Funktion zum Beispiel wie folgt:
copyDatabase("../dbdir", "address.db");
Dabei müssen die beiden Übergabeparameter entsprechend den Pfaden und Namen der Datenbankdatei geändert werden. Anschließend können Sie die kopierte Datenbank auch schreibend öffnen. Ein einfaches Beispiel hierfür bringt auch Microweb mit der Datei htdocs/usesqlitedb.php mit. Microweb startet in der Default-Konfiguration den im System als Standard verankerten Browser.
Browser-Probleme
Webserver auf CD
Probleme können hier auftreten, wenn im System Mozilla oder Firefox als Standardbrowser mit der Option Schnellstart installiert sind. Hier funktioniert Microweb nicht richtig und beendet seinen Dienst nach einigen Sekunden wieder. Über die Konfigurationsdatei microweb.ini können Sie dieses Verhalten ändern. Entweder wird mit der Zeile
browser=ie
der Server explizit aufgefordert, den Internet Explorer als Browser zu verwenden, oder Sie können mit
browserpath=...
einen Pfad zu einem externen Browser Ihrer Wahl angeben. Dies kann auch ein Browser sein, der auf der CD mitgeliefert wird. Kann man mit dem Internet Explorer als Browser leben, dann ist die erste Lösung die sicherere.
Die Serverkonfiguration
Webserver auf CD
Einige der Grundeinstellungen sind für Ihre Zwecke vielleicht nicht ganz optimal ? die Browserkonfiguration wurde bereits angesprochen. Über die microweb.ini-Konfigurationsdatei können Sie die Einstellungen von Microweb bearbeiten. An dieser Stelle wird nur auf einige der wichtigsten eingegangen. Eine ausführliche Beschreibung finden Sie in der Microweb-Dokumentation. Folgende Einstellungen sind von besonderer Bedeutung:
DocumentRoot=htdocs
hostname=microweb
port=4001
Per DocumentRoot können Sie das Verzeichnis bestimmen, in dem Sie Ihre Webseiten unterbringen möchten. Der voreingestellte Wert sollte für die meisten Anwendungen in Ordnung sein. Mit hostname wird der Name des Servers angegeben, der im URL-Feld des Browsers angezeigt wird. Statt microweb können Sie den Namen Ihrer Anwendung eintragen. Standardmäßig ist die Zeile port auskommentiert und Microweb sucht sich selbstständig einen freien Port. Sie können auch einen fixen Port vergeben.
PHP anpassen
Webserver auf CD
Microweb bringt bereits eine Menge an PHP-Modulen mit, trotzdem kann es unter Umständen sinnvoll sein, einige Dinge an der PHP-Konfiguration zu ändern. Bevor Sie eine PHP-Anwendung auf CD-ROM ausliefern, sollten Sie die folgenden Einstellungen verändern:
max_execution_time = 100
Mit diesem Eintrag erhöhen Sie die maximal erlaubte Laufzeit der Skripts (in Sekunden). Eine höhere Laufzeit als die standardmäßigen 30 Sekunden kann durch die langsameren Zugriffe der Skripts auf CD-ROM notwendig sein.
Fehler sollten in der ausgelieferten Version nicht angezeigt werden:
display_errors=off
Sollten Ihnen die installierten PHP-Module nicht ausreichen, können Sie über extension-Einträge neue Module hinzufügen. So sind beispielsweise das SQLite- und GD-Modul nicht standardmäßig installiert. Die beiden folgenden Zeilen schaffen hier Abhilfe:
extension=php_sqlite.dll
extension=php_gd.dll
Die Anwendung auf CD
Webserver auf CD
Ihr entpacktes Microweb-Verzeichnis enthält fünf wichtige Dateien und Ordner, die Sie mit auf eine CD brennen müssen, um das System zu nutzen. Wichtig sind die Dateien microweb.exe, microweb.ini, ssi.exe und autorun.inf. Letztere sorgt dafür, dass der Server automatisch gestartet wird, wenn Sie die CD-ROM in das Laufwerk einlegen. Neben diesen Dateien muss zwingend das Verzeichnis php mit auf die CD. Sollten Sie auch eine MySQL-Datenbank verwenden wollen, so ist auch das Verzeichnis mysql erforderlich. Anschließend fügen Sie noch die Verzeichnisse mit den Daten der Web-Anwendung (zum Beispiel htdocs) hinzu, und falls Sie eine Datenbank verwenden wollen auch dbdir. Fertig ist die Anwendung für die CD. Zum Testen bieten sich wiederbeschreibbare Medien an, die gelöscht werden können, wenn Probleme oder Fehler entdeckt werden.
Fazit
Webserver auf CD
Mit einfachen Mitteln ist es möglich, PHP-Anwendungen nicht nur im Internet, sondern auch auf CD-ROM zu nutzen. Dies eröffnet für viele Programme ganz neue Perspektiven. Letztendlich bleibt es Ihrem Einfallsreichtum überlassen, welche Anwendungen Sie für diese Technik finden. Web-Agenturen, die Ihre Projekte unterwegs vorführen wollen, aber die Bedingungen vor Ort nicht kennen, sind mit dieser Lösung gut beraten. Mit Microweb steht Ihnen eine praxiserprobte und zuverlässige Plattform dafür zur Verfügung.