staging.inyokaproject.org

Wt

Archivierte Anleitung

Dieser Artikel wurde archiviert. Das bedeutet, dass er nicht mehr auf Richtigkeit überprüft oder anderweitig gepflegt wird. Der Inhalt wurde für keine aktuell unterstützte Ubuntu-Version getestet. Wenn du Gründe für eine Wiederherstellung siehst, melde dich bitte in der Diskussion zum Artikel. Bis dahin bleibt die Seite für weitere Änderungen gesperrt.

Wiki/Icons/Internet.png 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.

Installation

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

  • witty (universe, ab Jaunty)

Befehl zum Installieren der Pakete:

sudo apt-get install witty 

Oder mit apturl installieren, Link: apt://witty

Möchte man selbst Programme schreiben, wird zusätzlich das Entwicklerpaket benötigt:

  • witty-dev (universe, ab Jaunty)

Befehl zum Installieren der Pakete:

sudo apt-get install witty-dev 

Oder mit apturl installieren, Link: apt://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 🇬🇧 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 🇬🇧 im Wt-Wiki.

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

  • spawn-fcgi (universec)

Befehl zum Installieren der Pakete:

sudo apt-get install spawn-fcgi 

Oder mit apturl installieren, Link: apt://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.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Programmierung