Apache mod_wsgi Django 设置 - Forbidden 您没有权限访问此服务器上的 /mysite。

3
我已经在Windows XP上安装了Python 26、Apache 2.2、modwsgi ap2.2 py26。Apache已经成功加载modwsgi,当我检查localhost时,Apache显示“ It works!”。但是,当我尝试打开Django目录mysite: localhost/mysite时,我收到以下错误信息: Forbidden 您无权访问此服务器上的 /mysite。 我已经多次重新安装,但问题仍然存在。教程说应该得到:It worked。 httpd.conf LoadModule wsgi_module modules/mod_wsgi.so WSGIScriptAlias / /mysite/apache/mysite.wsgi 正常运行,如:http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/ 我的项目路径是C:\mysite,根据 "http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/",mysite.wsgi 路径是 C:\mysite\apache\mysite.wsgi。 我已经搜索了这个问题,但解决方法都是针对Linux系统,请问有没有人能够给出Windows系统的答案。 错误日志如下: [error] [client 127.0.0.1] client denied by server configuration: C:/mysite/apache/mysite.wsgi 请问有谁能帮忙解决这个问题吗? 谢谢。

我认为你在http://serverfault.com/上可能会更加幸运。 - sje397
这里是配置的更详细描述。http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango 请仔细按照步骤操作,并发布您遇到的错误堆栈跟踪以更好地理解问题。 - Ankit Jaiswal
你真的需要发布Apache配置文件的相关部分以获得良好的答案。 - Craig Trader
2个回答

2

这个配置片段来自Linux而不是Windows,但(pathname除外)应该代表了一个良好的mod_wsgi配置。根据您描述的症状,似乎您没有正确设置 mysite.wsgi 的目录权限。简单来说,您想让任何人查看您网站的任何部分,都必须具备访问包含该文件的目录的权限。

WSGIProcessGroup  foo
WSGIDaemonProcess foo processes=2 threads=5 home=/data/web/foo display-name=foo

DocumentRoot /var/www

WSGIScriptAlias / /data/web/foo/apache/django.wsgi
<Directory /data/web/foo/apache>
  Order allow,deny
  Allow from all
</Directory>

Alias /static/ /data/web/foo/site/foo/static/
<Directory /data/web/foo/site/foo/static/>
  SetHandler None
  Order allow,deny
  Allow from all
</Directory>

无论我尝试什么方法,都会出现相同的错误,即 403 Forbidden。我使用的是 Apache 2.2 版本。我浏览了 5 个不同的教程,但希望有一个教程能展示 httpd.conf 内容和 wsgi 文件以及所有步骤的详细说明。考虑到节省时间,我将转向使用 nginx。 - radtek

0
将以下代码添加到httpd.conf中:
<Directory C:/mysite/apache>
  Order deny,allow
  Allow from all
</Directory>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接