2014-06-27 91 views
0

我想通过apache和mod_wsgi文件设置django项目。但我得到这个错误client denied by server configuration: /home/ghrix/production。我有谷歌这个errro,发现了很多解决方案,但没有为我工作。客户端被服务器配置拒绝

我的代码如下:

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

我通过使两个改变解决了这个问题: 1)要求全部否认 - >将其更改为 - >要求全部授予 2)如果您查看由您创建的项目,您的项目目录中已经有一个wsgi.py文件(默认情况下放置您的设置的相同目录)不必像我最初创建的那样创建独立的wsgi文件。只是指向wsgi.py在里面的Apache2你的conf文件

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> 
相关问题