Apache mod_wsgi Django 设置 - 禁止 你没有权限访问 /mysite 这个服务器

3 投票
2 回答
10122 浏览
提问于 2025-04-16 04:30

我在Windows XP上安装了Python 2.6、Apache 2.2和mod_wsgi ap2.2 py26。Apache可以正常加载mod_wsgi。当我检查localhost时,Apache显示“正常工作!”但是当我尝试打开Django目录我的网站时,输入localhost/mysite却出现了:
禁止访问
你没有权限访问这个服务器上的/mysite。
我已经重新安装了很多次,但结果还是一样。教程上说应该显示“正常工作”。
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,按照教程,mysite.wsgi的路径是C:\mysite\apache\mysite.wsgi。
我搜索过这个问题,但找到的解决方案都是针对Linux的,谁能给我一个适用于Windows的答案呢。

错误日志是:
[错误] [客户端 127.0.0.1] 客户端被服务器配置拒绝:C:/mysite/apache/mysite.wsgi
有人能帮我解决这个问题吗...谢谢。

2 个回答

0

在httpd.conf文件中添加以下代码:

<Directory C:/mysite/apache>
  Order deny,allow
  Allow from all
</Directory>
2

这个配置片段来自Linux,而不是Windows,不过(除了路径的不同)应该能很好地代表一个好的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>

撰写回答