带烧瓶的mod_wsgi配置

时间:2013-11-06 16:04:05

标签: python centos flask mod-wsgi

我有一个mod_wsgi和烧瓶的问题我不知道在经过近48小时的尝试后它是什么我终于放弃并需要一些帮助。一切似乎都很好并且工作正常我知道这一点,因为如果用户没有登录,我的www.example.com域将路由到example.com/login。

当我访问example.com时,路由确实发生了,我可以看到url更改为example.com/login

这是我的配置:

killerapp.wsgi:

from main import app as application

和apache虚拟主机:

NameVirtualHost *:8080
<VirtualHost *:8080>
 ServerName example.com

 WSGIDaemonProcess killerapp user=apache group=apache threads=5
 WSGIScriptAlias / /var/www/wsgi/killerapp.wsgi

  <Directory /var/www/wsgi>
     WSGIProcessGroup killerapp
     WSGIApplicationGroup %{GLOBAL}
     Order deny,allow
     Allow from all
  </Directory>
</VirtualHost>

我一直收到以下错误

ImportError: No module named app

当我做的时候

chmod 755 app
在app文件夹上的

我在日志文件中得到以下内容,表示没有错误:

[Wed Nov 06 17:25:29 2013] [info] [client xx.xx.x.xxx] mod_wsgi (pid=3823, process='killerapp', application=''): Loading WSGI script '/var/www/wsgi/killerapp.wsgi

但是当我访问该页面时仍然出现以下错误:

The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

我怀疑它是一个所有权/安全问题,但这只是我猜我现在还不知道。如果有任何帮助我在Centos 6.4和mod_wsgi 3.2.3上运行python 2.6.6

真的很感激任何帮助。 谢谢

1 个答案:

答案 0 :(得分:3)

非常感谢Mark Hildreth向我展示了“方式”,我终于看到了问题所在。这是一个许可问题

在我的python应用程序中,我在初始化烧瓶应用程序之后启用了调试,如下所示:

app = Flask(__name__)
app.debug = True

这允许Flask在apache错误日志中显示错误消息。在我的情况下,问题是Jinja无法访问模板目录,因为apache用户未被设置为该目录的所有者,因此以下修复了它:

chown apache:apache templates

再次感谢Mark Hildreth向我展示了光明!