2011-03-09 22 views
1

嗨所有我無法在apache2 webserver中運行django應用程序。我已經經歷了所有的文件去,但它仍然沒有爲me.This工作是我的Apache2的httpd.conf文件如何在apache2中運行Django應用程序

<Location "/mysite/"> 
    SetHandler python-program 
    PythonHandler django.core.handlers.modpython 
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings 
    PythonOption django.root /mysite 
    PythonPath "['/home/djangotest/mysite'] + sys.path" 
    PythonDebug On 
</Location> 

我的Django項目的位置是/家/ djangotest/mysite的在我運行的民意調查應用。有什麼我不得不在settings.py或urls.py中提到這個在Apache2中工作,它在開發服務器上工作正常。或者是有配置我在Apache2的做與工作

+4

請不要使用mod_pythom,使用mod_wsgi的,而不是:'( – 2011-03-09 13:05:21

+0

我已經切換到mod_wsgi的和在一個側面說明試圖出來 – Rakesh 2011-03-09 18:08:29

回答

1

嘗試添加一個 '/ home/djangotest' 到PYTHONPATH:

<Location "/mysite/"> 

    SetHandler python-program 
    PythonHandler django.core.handlers.modpython 
    SetEnv DJANGO_SETTINGS_MODULE mysite.settings 
    PythonOption django.root /mysite 
    PythonPath "['/home/djangotest', '/home/djangotest/mysite'] + sys.path" 

    PythonDebug On 
</Location> 

你需要補充的是,如果你導入你的項目的文件與語法.. 其他人在這裏是正確的,雖然;如果可以的話,切換到mod-wsgi。 Django的mod_python支持將很快被棄用。 http://docs.djangoproject.com/en/1.2/howto/deployment/modpython/

編輯:mod_python支持在Django 1.3中已棄用,並且將在Django 1.5中完全刪除。

2
  1. 下載並安裝http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz

  2. 添加到/etc/httpd/conf.d/目錄


<VirtualHost *:80> 
    ServerName --insert-- 

    ErrorLog /home/djangotest/mysite/error_log 
    CustomLog /home/djangotest/mysite/access_log combined 

    UseCanonicalName Off 

    WSGIScriptAlias /g2 /home/djangotest/mysite/mysite.wsgi 
    WSGIDaemonProcess iproj processes=7 threads=1 display-name=%{GROUP} 

</VirtualHost> 
  1. Add to LoadModules secion在/etc/httpd/conf/httpd.conf中

    的LoadModule wsgi_module /usr/lib/httpd/modules/mod_wsgi.so

  2. 加入的AddHandler部分/etc/httpd/conf/httpd.conf中

    AddHandler的WSGI腳本.wsgi

  3. 確保您的httpd的用戶可以訪問的/ home/djangotest /以及執行你的Python腳本

  4. 創建mysite.wsgi文件:


import os 
import sys 

sys.path.append('/home/djangotest/mysite') 
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

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

或者作爲@Efazati說,閱讀說明書;)


Hopefuly這能解決您的最後一個問題:

沒有模塊名爲mysite.urls但有一個文件urls.py

檢查您的設置文件

ROOT_URLCONF =「mysite.urls」

這是你的URL文件的名稱,我猜你沒有一個模塊調用mysite.urls.py ?這聽起來像你的財產應改爲:

ROOT_URLCONF = 「網址」

+0

,你能不能用代碼做數字 – Nix 2011-03-09 13:12:04

+0

所以你說下載的mod_wsgi,然後用? mod_python – AndiDog 2011-03-09 13:13:06

+0

對不起,以上 – Nix 2011-03-09 13:16:44

相關問題