Apache mod_wsgi错误:禁止您没有访问/的权限

2024-05-23 15:24:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Ubuntu 10.04。
我在/home/wong2/Code/python/django2/下创建了一个名为atest
在同一个目录中创建wsgi文件setting.wsgi 以下是setting.wsgi的内容:

import os 
import sys

path = '/home/wong2/Code/python/django2'

if path not in sys.path:
    sys.path.append(path)
os.environ["DJANGO_SETTINGS_MODULE"] = "atest.settings" 
from django.core.handlers.wsgi import WSGIHandler 
application = WSGIHandler()

下面是我在httpd.conf中添加的内容:

<VirtualHost *:80>
    ServerName localhost
    WSGIScriptAlias / /home/wong2/Code/python/django2/setting.wsgi
    <Directory />
        Options FollowSymLinks
        AllowOverride None
        Order deny,allow  
        Allow from all 
    </Directory>
    <Directory "/home/wong2/Code/python/django2/atest">
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

问题是,当我访问http://localhost时,上面写着

Forbidden

You don't have permission to access / on this server.

非常感谢。


Tags: pathfromimportwsgi内容homeossys
3条回答

对于Django 1.5+,您应该使用文档中描述的建议方法:

WSGIScriptAlias / /path/to/mysite.com/mysite/wsgi.py
WSGIPythonPath /path/to/mysite.com

<Directory /path/to/mysite.com/mysite>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

https://docs.djangoproject.com/en/1.7/howto/deployment/wsgi/modwsgi/

由于受限的文件权限,我也遇到了同样的问题。

默认情况下,主文件夹用户具有以下设置:

ls -l /home/

drwx------ 36 user user 12288 Nov 28 20:56 user

也就是说,除了你自己,没有人能浏览这个文件夹。

在文件夹中添加execute选项解决了我的问题

chmod o+x /home/user/
ls -l /home/

drwx-----x 36 user user 12288 Nov 28 20:56 user

第二个目录块与安装WSGI脚本文件的位置不匹配。但是,将WSGI脚本文件保存在存在源代码或其他敏感文件的位置(即,相同的目录或子目录)是非常糟糕的做法。相反,您应该将它放在它自己的子目录中。因此:

WSGIScriptAlias / /home/wong2/Code/python/django2/atest/apache/setting.wsgi
<Directory "/home/wong2/Code/python/django2/atest/apache">
    Order allow,deny
    Allow from all
</Directory>

所以,在“atest”下创建“apache”子目录。将“setting.wsgi”移到“apache”子目录中,并将配置更改为上面的。

您的问题也可能是由于对主目录的限制性权限造成的,因为Apache看不到其中的内容。

去看:

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

因为它解释了这些权限问题以及诸如将代码和WSGI脚本文件粘贴到哪里之类的问题。

另请阅读:

http://code.google.com/p/modwsgi/wiki/IntegrationWithDjango

相关问题 更多 >