Flask + mod_wsgi:服务器配置拒绝客户端

时间:2013-05-03 15:25:57

标签: python apache flask mod-wsgi wsgi

当尝试使用Apache + mod_wsgi运行Flask时,我已经尝试了很多事情以达到高度挫败感。

基本上我已经完成了以下教程:

http://flask.pocoo.org/docs/deploying/mod_wsgi/#installing-mod-wsgi http://www.lonesomedev.com/?p=169

但是在浏览器上我收到以下错误:


禁止访问!

您无权访问请求的对象。它受读保护或服务器无法读取。

如果您认为这是服务器错误,请与网站管理员联系。

错误403

在Apache error.log中有以下内容:

[Fri May 03 17:17:06 2013] [错误] [client :: 1]客户端被服务器配置拒绝:/home/user1/Develop/flask_dbadmin.wsgi


我正在运行OpenSuse 11.4。

2 个答案:

答案 0 :(得分:8)

如果您在这里尝试了Apache2: 'AH01630: client denied by server configuration'提及的内容并且仍然无法正常工作,那么您的wsgi脚本别名路径可能会在<Directory>块中提到的路径之外。

每个别名都需要<Directory><Location>块。 例如,

WSGIScriptAlias / /home/stark/FlaskApp/flaskapp.wsgi

你需要

 <Directory /home/stark/FlaskApp>
       Require all granted
 </Directory>

答案 1 :(得分:2)

听起来Apache无法访问相关对象。确保您为此特定原因设置了帐户,并让文件访问此帐户。然后使用chown为该用户设置对这些文件的访问权限。在开发环境中,例如可以是Apache帐户。

chown -R wwwrun:www /home/user1/Develop/

或者你可以给所有人访问,但我不建议这样做。

chmod 777 -R /home/user1/Develop/

如果这不起作用,您可能需要手动允许访问apache配置中的wsgi文件。

看起来应该是这样的。

WSGIDaemonProcess flask_dbadmin user=wwwrun group=www threads=5
<VirtualHost *:80>

   ........

   <Directory /home/user1/Develop/ >
       Order allow,deny
       Allow from all
    </Directory>

   <Files flask_dbadmin.wsgi>
       Order allow,deny
       Allow from all
   </Files>
</VirtualHost>