我已閱讀過類似的問題/答案,但我無法解決這種情況。所以我安裝了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
沒有工作。
做,如果你在目錄中執行'蟒蛇wsgi.py'你收到任何錯誤訊息* /無功/網絡/虛擬主機/ MYAPP /測試/ * ? –
是的。我遇到了與導入錯誤相同的錯誤。它肯定是一個路徑問題,但我不明白我在做什麼錯誤。:( – user3124171
如果你有* wsgi.py *(帶'sys.path.append等)的更新版本,它可能會更好 –