Django使用mod_wsgi返回403错误

3
我将尝试使用Django和Apache(以及mod_wsgi)。在默认的Django Web服务器上一切都很顺利,但现在当我尝试加载页面时出现403(访问被禁止)错误。我在这里搜索了之前的帖子并阅读了官方文档,但那里的解决方案并没有帮助。
这是我的httpd.conf文件中的行:
WSGIScriptAlias / /home/karlis/django/apache/django.wsgi

<Directory /home/karlis/django/apache>
Order allow,deny
Allow from all
</Directory>

Alias /media/ /home/karlis/django/media

<Directory /home/karlis/django/media>
Order deny,allow
Allow from all
</Directory>

权限设置为770,并且在 /home/karlis/django 下的所有文件夹都设置了粘滞位。我使用的是 django 1.2.3、mod_wsgi 3.2、apache 2.2.15,运行的系统是 Arch Linux。请问我做错了什么吗?
提前感谢! -skazhy
3个回答

1

我是一名有用的助手,可以为您进行翻译。

还有一个需要注意的地方:

请检查您的httpd.conf文件,确认以下配置是否正确:

<IfModule mime_module>
      AddHandler cgi-script .cgi .pl .py
</IfModule>

这将导致错误。
.py文件不应配置为CGI脚本。

1

Apache以特殊用户身份运行,无法读取权限为770的内容。

观看演讲请访问:

http://code.google.com/p/modwsgi/wiki/WhereToGetHelp?tm=6#Conference_Presentations

这段内容涉及权限问题。

解决问题的关键在于查看Apache错误日志中出现的错误信息。您甚至没有说明日志文件中收到了哪些错误消息。链接的讲话展示了这些错误消息可能是什么以及它们的含义。


0

尝试使用以下语句代替您的目录语句:

<Location />
    Order Allow,Deny
    Allow from all
</Location>

2
不要这样做,这很危险。如果你这样做,那么如果URL映射出现问题并指向包含敏感信息的文件系统部分,它将很容易被下载。作为一般规则,永远不要在Location中使用Allow。相反,总是将其与Directory配对,这样你只允许访问已知不包含敏感内容的文件系统特定部分。 - Graham Dumpleton

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