ISPConfig, Apache, mod_wgsi, virtualenv und Flask

Um die Verwaltung der Domains, Postfächer etc. für mich und andere etwas zu erleichtern, habe ich mich für die Server Administrationssoftware ISPConfig entschieden. Für Debian gibt es auf howtoforge.com ein ganz nettes The Perfect Server Tutorial.

Da ich mich bisher noch nicht mit python Apps unter Apache beschäftigt hatte, insbesondere im Zusammenspiel mit ISPConfig und Subdomains hat mich das ganze doch etwas Recherche gekostet.

Daher hier eine kurze Anleitung.

1. wgsi_mod installieren - Unter Debian kann die wgsi_mod für den Apache Webserver einfach als Paket apt-get install wgsi_mod installiert werden.

2. Struktur - Die Struktur der Flask-App (mit Namen flaskTest) sieht wie folgt aus:

flaskTest/
    flaskTest.wgsi      (WGSI File)
    config.py           (Configuration)
    run.py              (Development Server)
    env/                (Virtualenv)
    flaskTest/
        __init__.py
        static/
            ...
        templates/
            ...

3. Die .wgsi Datei

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/path-to/flaskTest")
from flaskTest import app as application
application.secret_key = 'my secret key'

4. Die Subdomain im IPSConfig anlegen. Da es sich bei der Subdomain nicht um eine Weiterleitung handeln soll, muss diese als neue Webseite eigegeben werden. Um die Direktiven für Apache zur App zu hinterlegen, kann der Bereich Optionen im ISPConfig genutzt werden. Hier steht dann folgendes:

WSGIScriptReloading On
WSGIScriptAlias / /path-to/flaskTest/flaskTest.wsgi
WSGIDaemonProcess flaskTest python-path=/path-to/flaskTest/flaskTest:/path-to/flaskTest/env/lib/python2.7/site-packages
WSGIProcessGroup flaskTest
<Directory /path-to/flaskTest>
    Order allow,deny
    Allow from all
</Directory>

5. DNS Einstellung - Zu guter letzt, muss natürlich noch der DNS Eintrag für die Subdomain vorgenommen werden, hier reicht ein einfacher subdomain IN CNAME www und fertig ist die Seite.


06.07.2014 14:05