2012-02-17 2 views
2

Я настроен Flask, python web micro-framework под apache с mod_wsgi.mod_wsgi python conf parser

Приложение работает отлично, за исключением python confparser. Это не проливает ошибку:

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

Но когда я добавляю:

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

Я получил внутренняя ошибка сервера без чего-либо в error.log от Apache

Я попытался также:

file = open("sample.txt") 

Тот же результат.

Должны быть некоторые проблемы с конфигурацией, но я не могу их найти.

Мой апач конф выглядит следующим образом:

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> 

Мой 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 

Что, возможно, может быть не так, и почему я не могу получить ошибка в Apache войти?

ответ

3

Используйте абсолютные пути к файлам в коде Python, а не относительные пути.

В текущем рабочем каталоге процесса не будет указан код приложения и файлы.

Вы не видите никаких ошибок, поскольку Flask не будет регистрировать их, если не в режиме отладки. Устанавливать приложение для их захвата и отправки по электронной почте или каким-либо иным образом записывать их. Я не помню, какие варианты Флакс для последнего.

+0

Я согласен с тем парнем, который написал mod_wsgi! – synthesizerpatel

+0

И я сделал также ошибку, чтобы инициировать мое приложение фляги после того, как «__name __» == «__ main__» – gpasse

0

Добавьте путь к вам APACHE файл настройки с домашней переменной

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

это изменяет рабочий каталог для процесса.