2014-06-27 110 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> 
相關問題