Frage

Ich bin Flask eingerichtet, ein Python Web Micro-Framework unter Apache mit mod_wsgi.

Die Anwendung funktioniert einwandfrei mit Ausnahme von Python Confparser. Dies wirft keinen Fehler auf:

parser = ConfigParser.ConfigParser()
parser.read('snati.con')

Aber wenn ich hinzufüge:

parser.get('database', 'user')

ich habe interner Serverfehler Ohne irgendetwas im Fehler.log von Apache

Ich habe es auch versucht:

file = open("sample.txt")

Gleiches Ergebnis.

Es muss einige Konfigurationsprobleme geben, aber ich kann es nicht finden.

Mein Apache Conf sieht aus:

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>

Meine 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

Was kann möglicherweise falsch sein und warum kann ich den Fehler in Apache -Protokoll nicht bekommen?

War es hilfreich?

Lösung

Verwenden Sie absolute Pfade zu Dateien in Ihrem Python -Code, nicht zu relativen Pfaden.

Das aktuelle Arbeitsverzeichnis des Prozesses ist nicht dort, wo sich Ihr Anwendungscode und Ihre Dateien befinden.

Sie sehen keine Fehler, da Flask sie nicht protokolliert, wenn nicht im Debug -Modus. Richten Sie die Bewerbung ein, um sie zu erfassen und eine E -Mail zu senden oder auf andere Weise wie. Ich erinnere mich nicht, welche Optionen Flask für Letzteres haben.

Andere Tipps

Fügen Sie Ihnen die Apache -Einstelldatei mit einer Home -Variablen hinzu

WSGIDaemonProcess myapp user=me group=me threads=5 home=/path/to/your/directory

Dies ändert das Arbeitsverzeichnis für den Prozess.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top