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

Jus*_*ssi 3 python apache mod-wsgi wsgi flask

在尝试使用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.

Sci*_*642 8

如果您尝试过Apache2提到的问题:'AH01630:服务器配置拒绝客户端',它仍然无法正常工作,您的wsgi脚本别名路径是在<Directory>块中提到的路径之外 .

每个Alias都需要一个<Directory>或一个<Location>块. 所以,例如,

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

你需要的

 <Directory /home/stark/FlaskApp>
       Require all granted
 </Directory>
Run Code Online (Sandbox Code Playgroud)


ean*_*son 3

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

chown -R wwwrun:www /home/user1/Develop/
Run Code Online (Sandbox Code Playgroud)

或者您可以授予每个人访问权限,但我不建议这样做。

chmod 777 -R /home/user1/Develop/
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,您可能需要手动允许访问 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>
Run Code Online (Sandbox Code Playgroud)