Dieser Artikel wurde archiviert, da er - oder Teile daraus - nur noch unter einer älteren Ubuntu-Version nutzbar ist. Diese Anleitung wird vom Wiki-Team weder auf Richtigkeit überprüft noch anderweitig gepflegt. Zusätzlich wurde der Artikel für weitere Änderungen gesperrt.
Wt (oder auch "Witty") ist ein an Qt angelehntes und stark auf Boost aufbauendes Web-Framework, das es ermöglicht, browserunabhängige und dynamische Web-Applikationen fast gänzlich in C++, d.h. ohne HTML, JavaScript, AJAX, etc., zu entwickeln. Neben dem aus Qt bekannten Signal/Slot-Prinzip bringt Wt unter anderem eingebauten Schutz vor Cross-Site-Scripting, Cross-Site Request Forgery und einen eigenen Anwendungsserver mit. Der Einsatz von Wt bietet sich beispielsweise an, wenn bestehende C++-Applikationen ins Web integriert werden sollen, hohe Skalierbarkeit und/oder der Einsatz auf Embedded-Geräten gewünscht ist. Parallel zu Wt wird JWt entwickelt, das den Einsatz in Java erlaubt. Wt und JWt sind unter der GPLv2 lizenziert. Für Closed-Source-Projekte muss eine separate Lizenz erworben werden.
Zum Ausführen mit Hilfe von Wt entwickelter Anwendungen muss folgendes Paket installiert [1] werden:
witty (universe, ab Jaunty)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install witty
sudo aptitude install witty
Möchte man selbst Programme schreiben, wird zusätzlich das Entwicklerpaket benötigt:
witty-dev (universe, ab Jaunty)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install witty-dev
sudo aptitude install witty-dev
In der Datei /etc/wt/wt_config.xml findet sich eine sehr ausführlich kommentierte Beispielkonfiguration für den Anwendungsserver von Wt, welche mit Hilfe eines Editors [2] und Root-Rechten bearbeitet werden kann.
Die Einstellungen im Abschnitt Session-Management sollte man mit Bedacht wählen, um den Erfolg von DoS-Attacken in Grenzen zu halten und eine gute Skalierbarkeit zu gewährleisten.
Der Anwendungsserver bietet zwei Möglichkeiten an, mit denen er betrieben werden kann: Zum Einen als eigenständiger Webserver und zum Anderen zusammen mit einem Webserver, wie nginx oder Apache, über die FastCGI-Schnittstelle. Während der FastCGI-Betrieb eher für das Produktivsystem geeignet ist, empfehlen die Entwickler den eingebauten Webserver für die Entwicklungs- und Testphase zu verwenden.
Damit die Webanwendung im Standalone-Modus laufen kann, muss sie zuvor mit dem Connector wthttp kompiliert worden sein. Details dazu findet man im CMake-Tutorial im Wt-Wiki. Ist dies geschehen, lässt sich der mitgelieferte Webserver mit einem einfachen Konsolenbefehl[3][4] starten:
./myapp.wt --docroot . --http-address 127.0.0.1 --http-port 8080
Die Applikation sollte nun unter http://localhost:8080 erreichbar sein. Eine detaillierte Auflistung aller möglichen Parameter erhält man über den Parameter --help. Möchte man den Webserver wieder beenden, geschieht dies über die Tastenkombination Strg + C .
Da der Standalone-Server eher für die Entwicklungsphase gedacht ist, dürften die meisten Anwender die FastCGI-Variante favorisieren, da sie unter anderem auch eine bessere Integration in das Gesamtsystem bietet. Um diesen Modus zu verwenden muss die Anwendung mit dem Connector wtfcgi kompiliert worden sein. Details dazu findet man auch hier im CMake-Tutorial im Wt-Wiki.
Falls noch nicht geschehen, installiert man sich zunächst noch das Paket
spawn-fcgi (universec)
mit apturl
Paketliste zum Kopieren:
sudo apt-get install spawn-fcgi
sudo aptitude install spawn-fcgi
Mit Hilfe von spawn-fcgi lässt sich die Webanwendung nun über die Konsole[3][4] starten:
sudo spawn-fcgi -d /pfad/zu/ -a 127.0.0.1 -p 9091 -u user -g user -- /pfad/zu/myapp.wt
Der Benutzer bzw. die Gruppe user benötigen hierbei Schreibzugriff[5] auf den Ordner /var/run/wt. Abschließend muss nur noch der Webserver entsprechend konfiguriert werden. Anleitungen für nginx und lighttpd finden sich im Wt-Wiki.
Diese Revision wurde am 6. Dezember 2013 21:06 von frustschieber erstellt.