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
但在浏览器上我收到以下错误:
访问被禁止!
您无权访问请求的对象.它受读保护或服务器无法读取.
如果您认为这是服务器错误,请与网站管理员联系.
在Apache error.log中有以下内容:
[Fri May 03 17:17:06 2013] [错误] [client :: 1]客户端被服务器配置拒绝:/home/user1/Develop/flask_dbadmin.wsgi
我正在运行OpenSuse 11.4.
如果您尝试过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)
听起来 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)