mod_wsgi für Flask und Subdomains konfigurieren
Verfasst: Montag 8. Juni 2015, 16:08
Guten Tag zusammen,
Ich überlege zurzeit eine in PHP/HTML/JS geschriebene Website durch Flask abzulösen. Soweit ist sie auch fertig, nur möchte ich sie erst einmal zu Testzwecken auf einer Subdomain laufen lassen.
Erstmal zum aktuellen System:
Ubuntu Server 12.04
Apache 2
mod_wsgi
python 2.7
Zum verwalten von Apache und Co benutze ich Plesk. Dort habe ich auch die Subdomain erstellt.
Zum Testen habe ich eine ganz einfache Flask app erstellt:
Dies liegt bei mir unter "/var/www/vhosts/domain.de/test.domain.de/test.py"
Dann habe das .wsgi File ebenfalls unter diesem Pfad erstellt, nur mit dem Namen "test.wsgi" und dem Inhalt:
Zum Schluss, habe ich das Apache Konfiguration unter /etc/apache2/apache2.conf um folgende Zeilen erweitert:
Wenn ich nun Apache neustarte meckert er mir auch nichts an, nur wenn ich nun versuche diese Subdomain aufzurufen, bekomme ich nur ein "403 - Forbidden". Ein normales HTML Dokument mit einem "Hello World" kann ich ohne Probleme aufrufen.
Im Apache Error log bekomme ich auch nur folgende Meldungen zum Thema Python:
Ich überlege zurzeit eine in PHP/HTML/JS geschriebene Website durch Flask abzulösen. Soweit ist sie auch fertig, nur möchte ich sie erst einmal zu Testzwecken auf einer Subdomain laufen lassen.
Erstmal zum aktuellen System:
Ubuntu Server 12.04
Apache 2
mod_wsgi
python 2.7
Zum verwalten von Apache und Co benutze ich Plesk. Dort habe ich auch die Subdomain erstellt.
Zum Testen habe ich eine ganz einfache Flask app erstellt:
Code: Alles auswählen
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
Dann habe das .wsgi File ebenfalls unter diesem Pfad erstellt, nur mit dem Namen "test.wsgi" und dem Inhalt:
Code: Alles auswählen
from test import app as application
Code: Alles auswählen
<VirtualHost *:80>
ServerName test.domain.de
WSGIDaemonProcess test user=user group=gruppe threads=5
WSGIScriptAlias / /var/www/vhosts/domain.de/test.domain.de/test.wsgi
<Directory /var/www/vhosts/domain.de/test.domain.de>
WSGIProcessGroup test
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/flask.err
</VirtualHost>
Im Apache Error log bekomme ich auch nur folgende Meldungen zum Thema Python:
[Mon Jun 08 16:55:45 2015] [error] python_init: Python version mismatch, expected '2.7.2+', found '2.7.3'.
[Mon Jun 08 16:55:45 2015] [error] python_init: Python executable found '/usr/bin/python'.
[Mon Jun 08 16:55:45 2015] [error] python_init: Python path being used '/usr/lib/python2.7/:/usr/lib/python2.7/plat-linux2:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload'.
[Mon Jun 08 16:55:45 2015] [notice] mod_python: Creating 8 session mutexes based on 150 max processes and 0 max threads.
[Mon Jun 08 16:55:45 2015] [notice] mod_python: using mutex_directory /tmp
[Mon Jun 08 16:55:45 2015] [notice] Apache/2.2.22 (Ubuntu) DAV/2 SVN/1.6.17 mod_fcgid/2.3.9 mod_python/3.3.1 Python/2.7.3 mod_ssl/2.2.22 OpenSSL/1.0.1 mod_wsgi/3.3 configured -- resuming normal operations