analyseur mod_wsgi python conf
Question
Je suis mis en place Flask, un micro-framework web python sous apache avec mod_wsgi.
L'application fonctionne très bien, sauf confparser python. Cela jette pas d'erreur:
parser = ConfigParser.ConfigParser()
parser.read('snati.con')
Mais quand j'ajoute:
parser.get('database', 'user')
Je suis erreur interne du serveur sans rien dans le error.log d'Apache
J'ai essayé aussi:
file = open("sample.txt")
Le même résultat.
Il doit y avoir des problèmes de configuration, mais je ne peux pas le trouver.
Mes regards apache comme conf:
WSGIRestrictStdout Off
<VirtualHost *:80>
ServerName my.com
WSGIDaemonProcess myapp user=me group=me threads=5
WSGIScriptAlias / /home/me/www/myapp.wsgi
<Directory /home/me/www/myapp >
WSGIProcessGroup myapp
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Mon app.wsgi
#active the python virtualenv for this application
activate_this = '/home/gilles/www/snati/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))
import sys
sys.path.insert(0, '/home/gilles/www/snati/src')
sys.stdout = sys.stderr
from app import app as application
Que peut-il se tromper et pourquoi puis-je pas obtenir l'erreur dans le journal Apache?
La solution
Utilisez des chemins absolus vers des fichiers dans votre code Python, pas des chemins relatifs.
Le répertoire de travail actuel du processus ne sera pas où votre code d'application et des fichiers est.
vous ne voyez pas des erreurs comme Flask ne les connecter sinon en mode débogage. application de configuration pour les capturer et les envoyer par courriel ou de les enregistrer d'une façon. Je ne me souviens pas quelles sont les options Flask a pour ce dernier.
Autres conseils
Ajoutez le chemin vers fichier de configuration apache avec une variable de la maison
WSGIDaemonProcess myapp user=me group=me threads=5 home=/path/to/your/directory
cela change le répertoire de travail pour le processus.