2016-01-23 90 views
1

我已閱讀過類似的問題/答案,但我無法解決這種情況。所以我安裝了WSGI,並想從Apache服務我的django應用程序。apache wsgi django路徑問題挫折

我最開始做的是用virtualenv創建包含python相關內容的文件夾測試。所以,我沒有

virtualenv environment 

我的虛擬主機文件看起來像:

<VirtualHost *:8001> 
WSGIDaemonProcess myapp python-path=/var/www/vhosts/myapp.com/:/var/www/vhosts/myapp.com/environment/lib/python2.7/:/var/www/vhosts/myapp.com/environment/lib/python2.7/sites-available 
WSGIScriptAlias//var/www/vhosts/myapp/testing/wsgi.py 
... 
... 

我wsgi.py是:

import os 

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "testing.settings") 

from django.core.wsgi import get_wsgi_application 

application = get_wsgi_application() 

一旦訪問我得到一個服務器內部錯誤和錯誤網頁.log說基本上有2條錯誤信息:

[wsgi:error] [pid 31165] [client 192.168.0.3:31337] mod_wsgi (pid 31165): Target WSGI script '/var/www/vhosts/myapp.com/testing/wsgi.py' cannot be loaded as Python Module 

,並在之後幾行文字,結束於:

[wsgi:error] [pid 31165] [client 192.168.0.3:31337] mod_wsgi (pid 31165): ImportError: Could not import settings 'testing.settings' (is it on sys.path? Is there an import error in the settings file?) 

我就發現的第一個錯誤味精這個Target WSGI script cannot be loaded as Python module但是我想不出解決問題。我得到的是,這個錯誤並沒有阻止Apache嘗試加載我的python(django)項目,因爲下一個錯誤是我認爲會導致500響應的原因。對於第二個錯誤,我發現這是添加路徑(我已經做了我的vhost文件!)

我試過其他的解決方案,例如在我的apache.conf中添加WSGIPythonPath,但沒有奏效。

我wsgi.py文件如下:

import os 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "testing.settings") 

from django.core.wsgi import get_wsgi_application 

application = get_wsgi_application() 

我也嘗試添加

import sys 
    os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' 
    sys.path.append('/var/www/vhosts/myapp/testing') 
    import mysite.settings 

沒有工作。

+0

做,如果你在目錄中執行'蟒蛇wsgi.py'你收到任何錯誤訊息* /無功/網絡/虛擬主機/ MYAPP /測試/ * ? –

+0

是的。我遇到了與導入錯誤相同的錯誤。它肯定是一個路徑問題,但我不明白我在做什麼錯誤。:( – user3124171

+0

如果你有* wsgi.py *(帶'sys.path.append等)的更新版本,它可能會更好 –

回答

0

你可以嘗試移動wsgi.pysettings.py/無功/網絡/虛擬主機/ MYAPP /測試/ mysite的

WSGIPythonPath /var/www/vhosts/myapp/testing 
<VirtualHost *:8000> 

    WSGIScriptAlias//var/www/vhosts/myapp/testing/mysite/wsgi.py 
    # WSGIApplicationGroup is needed to prevent some problem? 
    WSGIApplicationGroup %{GLOBAL} 
</VirtualHost> 

,並在wsgi.py文件

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' 
sys.path.append('/var/www/vhosts/myapp/testing') 
import mysite.settings 

我想我在升級django時遇到過類似的問題。事情開始工作後,我搬到settings.pywsgi.py

+0

Thanks for your answer。Did not work though :(相同的錯誤信息 – user3124171

+0

@ user3124171我在'wsgi.py'中也放了一些相關的行,我忘記了放置他們在這裏 –

+0

這些行我也發現他們也在另一個線程。然而,這些不適合我...我不知道發生了什麼:(我被詛咒 – user3124171