ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.
WikiWt

Wt

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Wiki/Icons/Internet.png Wt {en} (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 {en} 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.

Installation

Zum Ausführen mit Hilfe von Wt entwickelter Anwendungen muss folgendes Paket installiert [1] werden:

  • witty (universe, ab Jaunty)

Wiki/Vorlagen/Installbutton/button.png 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)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install witty-dev 

sudo aptitude install witty-dev 

Konfiguration

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.

Hinweis:

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.

Benutzung

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.

Standalone

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 {en} 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 .

FastCGI

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 {en} im Wt-Wiki.

Falls noch nicht geschehen, installiert man sich zunächst noch das Paket

  • spawn-fcgi (universec)

Wiki/Vorlagen/Installbutton/button.png 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 {en} und lighttpd {en} finden sich im Wt-Wiki.

ubuntuusers.local › WikiWt