4

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

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

这是我的配置:

杀手应用程序.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

在应用程序文件夹中,我在日志文件中得到以下信息,表明没有错误:

[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

任何帮助将不胜感激。谢谢

4

1 回答 1

3

非常感谢 Mark Hildreth 向我展示了“方式”,我终于明白了问题所在。这是一个权限问题

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

app = Flask(__name__)
app.debug = True

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

chown apache:apache templates

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

于 2013-11-06T20:16:19.473 回答