Pregunta

Estoy configurado Flask, un micro-marco de Python Web bajo Apache con mod_wsgi.

La aplicación funciona bien excepto Python Confparser. Esto no arroja ningún error:

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

Pero cuando agrego:

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

Obtuve error de servidor interno sin nada en el error.log de Apache

Lo intenté también:

file = open("sample.txt")

Mismo resultado.

Debe haber algunos problemas de configuración, pero no puedo encontrarlo.

Mi conf conf se parece:

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>

Mi 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

¿Qué puede estar mal y por qué no puedo obtener el error en el registro de Apache?

¿Fue útil?

Solución

Use rutas absolutas a archivos en su código Python, no rutas relativas.

El directorio de trabajo actual del proceso no será donde está su código de aplicación y archivos.

No está viendo ningún error, ya que Flask no los registra si no en modo de depuración. Configurar la aplicación para capturarlos y enviarlos por correo electrónico o registrarlos de otra manera cómo. No recuerdo qué opciones tiene Flask para este último.

Otros consejos

Agregue la ruta a su archivo de configuración de apache con una variable de inicio

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

Esto cambia el directorio de trabajo para el proceso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top