2014-04-20 37 views
1

當我移動的/ home/Django的/ mysite的在/ var/www/html等/ mysite的chown -R apache:apache它的工作原理。但留在主目錄我得到403禁止。Django的,mod_wsgi的 - daemon模式,403禁止,工作時在/ var/www/html等

我真的花了6個小時試圖讓這個工作。巨大的進步讓我看到它在/ var/www/html中工作,因爲我知道我所有的「配置」設置都是正確的。

這裏是我的httpd.conf

(第一設置不得不加制止503內部服務器錯誤)如此反覆

WSGISocketPrefix /var/run/wsgi 

<VirtualHost 208.115.206.227:80> 
WSGIDaemonProcess django user=django group=django python-path=/home/django/mysite 
WSGIProcessGroup django 

    ServerAdmin [email protected] 
    ServerName endor.mktrn.net 
    WSGIScriptAlias//home/django/mysite/mysite/wsgi.py 
<Directory /> 
    Options FollowSymLinks 
    AllowOverride None 
    Order deny,allow 
    Allow from all 
</Directory> 
<Directory /home/django/mysite/mysite> 
<Files wsgi.py> 
    Order allow,deny 
    Allow from all 
</Files> 
    </Directory> 
</VirtualHost> 

,上面的作品,如果我只是取代的/ home/Django的/ mysite的,用/ var/www/html。

我在用戶django下運行mod_wsgi作爲守護進程 - 所以我不這麼認爲。我究竟做錯了什麼?我知道放入/ var/www/html並不明智,即使我沒有文檔根目錄,所以真的很想搞清楚!

回答

1

一個主目錄如/ home/django通常對其他人不可讀,所以Apache運行的用戶將無法看到該目錄,因此訪問將被禁止。這就是爲什麼當你將它移動到別處時它會起作用。

+0

但我運行mod_wsgi作爲用戶'django'(守護進程模式),所以不會給它訪問權限?如果不是,我需要做什麼? – brizz

+0

Apache用戶必須具有從根目錄到WSGI腳本文件所在目錄的讀取/搜索訪問權限。如果使用守護程序模式並將其作爲不同的目錄運行,則WSGI腳本文件本身不需要Apache可讀用戶,但這些目錄必須能夠被讀取,所以Apache至少可以檢測到該文件存在。 –