mod_wsgi python conf解析器

时间:2012-02-17 11:37:31

标签: python mod-wsgi flask

我建立了Flask,一个带有mod_wsgi的apache下的python web微框架。

除python confparser外,应用程序运行正常。这不会引起错误:

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

但是当我添加:

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

我在

的error.log中没有任何内容时出现内部服务器错误

我也试过了:

file = open("sample.txt")

同样的结果。

必定存在一些配置问题,但我找不到它。

我的apache 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>

我的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日志中得到错误?

2 个答案:

答案 0 :(得分:5)

使用Python代码中文件的绝对路径,而不是相对路径。

流程的当前工作目录不是您的应用程序代码和文件的位置。

您没有看到任何错误,因为如果没有处于调试模式,Flask将不会记录它们。设置应用程序捕获它们并通过电子邮件发送或以其他方式记录它们。我不记得Flask对后者有什么选择。

答案 1 :(得分:0)

使用主变量

添加apache设置文件的路径
WSGIDaemonProcess myapp user=me group=me threads=5 home=/path/to/your/directory

这会更改进程的工作目录。