mod_wsgi pitone conf parser
Domanda
Io sono istituito Flask, un pitone web di micro-quadro sotto Apache con mod_wsgi.
L'applicazione funziona benissimo tranne pitone confparser. Questo getta nessun errore:
parser = ConfigParser.ConfigParser()
parser.read('snati.con')
Ma quando aggiungo:
parser.get('database', 'user')
Ho errore interno del server , senza nulla in error.log di Apache
Ho provato anche:
file = open("sample.txt")
Lo stesso risultato.
Ci devono essere alcuni problemi di configurazione, ma non riesco a trovarlo.
I miei sguardi apache conf come:
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>
Il mio 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
Che cosa può eventualmente essere sbagliato e perché non posso ottenere l'errore nel log di Apache?
Soluzione
Usa percorsi assoluti ai file nel codice Python, non percorsi relativi.
La directory di lavoro corrente del processo non sarà in cui il codice delle applicazioni e dei file è.
non si è visto errori come Flask non li registrerà se non in modalità di debug. applicazione di configurazione per catturare loro e-mail o in altro modo registrare loro in qualche modo. Non mi ricordo quali opzioni Flask ha per quest'ultimo.
Altri suggerimenti
Aggiungere il percorso a voi apache file di impostazione con una variabile di casa
WSGIDaemonProcess myapp user=me group=me threads=5 home=/path/to/your/directory
questo cambia la directory di lavoro per il processo.