客户端拒绝服务器配置

时间:2014-06-27 07:15:14

标签: python django apache mod-wsgi

我正在尝试通过apache和mod_wsgi文件设置django项目。但我收到此错误client denied by server configuration: /home/ghrix/production。我有谷歌这个错误,并找到了很多解决方案,但没有任何对我有用。

我的代码如下:

production.wsgi

import os
import sys


sys.path = ['/home/ghrix/myproject/'] + sys.path
os.environ['DJANGO_SETTINGS_MODULE'] = 'config.settings'


import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

production.conf文件:

<VirtualHost *:80>
WSGIScriptAlias / /home/ghrix/production.wsgi

ServerName firstweb.com
ServerAlias firstweb.com

Alias /static/ /home/ghrix/myproject/static/
 <Directory /home/ghrix/myproject/ >
            Options Indexes FollowSymLinks
            WSGIProcessGroup production
            WSGIApplicationGroup %{GLOBAL}
            Require all denied
 </Directory>
</VirtualHost>

1 个答案:

答案 0 :(得分:1)

我通过两次更改解决了这个问题: 1)要求全部拒绝 - &gt;将此更改为 - &gt; 要求全部授予 2)如果您查看由您创建的项目,项目目录中已存在wsgi.py文件(默认情况下您的设置所在的dir),因此您不必创建单独的wsgi文件,因为我有最初创建。只需将apache2中的conf文件中的wsgi.py指定为

即可

WSGIScriptAlias / /<path to my-project wsgi.py file>

这就是你的错误已经解决了。但是如果你在设置模块找不到之后再犯一个错误,那么你必须编辑你的wsgi文件并添加两行代码:

import sys
sys.path = ['<path to my project>'] + sys.path

这就是你的项目现在将顺利进行。

所以完整的wsgi和conf文件将如下所示:

wsgi.py文件:

import os
import sys

sys.path = ['<path to my project>'] + sys.path
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "conf.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

和conf文件:

<VirtualHost *:80>
WSGIScriptAlias / /<path to my project>/wsgi.py

ServerName secondweb.com
ServerAlias secondweb.com

Alias /static/ /<path to my project>/static/
<Directory /<path to my project>/ >
            Options Indexes FollowSymLinks
            Require all granted
</Directory>
</VirtualHost>