一尘不染

Apache mod_wsgi错误:禁止您没有访问此服务器上的权限

django

我正在使用Ubuntu 10.04。
我下创建一个Django项目/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.

阅读 428

收藏
2020-03-31

共1个答案

一尘不染

第二个目录块与你安装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在内部目录中看不到。

2020-03-31