5

当试图让 Flask 与 Apache + mod_wsgi 一起运行时,我一直在尝试很多事情,以至于非常沮丧。

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

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] [error] [client ::1] 客户端被服务器配置拒绝:/home/user1/Develop/flask_dbadmin.wsgi


我正在运行 OpenSuse 11.4。

4

2 回答 2

14

如果您尝试了此处提到的 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>
于 2015-06-19T23:00:32.490 回答
3

听起来 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>
于 2013-05-03T15:29:08.327 回答