2012-06-05 97 views
3

我把我的django網站第一次投入生產,所以請原諒我的無知。在apache上設置django(mod_wsgi,virtualenv)

我想把我的django網站放在apache上。我讀過有關mod_wsgi的文檔,並嘗試過簡單的Hello World,因此它被配置成OK。我遇到的問題似乎是與它一起使用virtualenvs。我想要正確設置包括virtualenvs和所有東西,以便爲將來的網站做好準備。

現在的問題。

我收到的Apache日誌的錯誤是:

No module named django.core.handlers.wsgi 

所以它似乎不正確讀取我的virtualenvs。

這是我的WSGI腳本:

import os 
import sys 
import site 
site.addsitedir('/home/user/.virtualenvs/myapp/lib/python2.7/site-packages') 

path = '/home/user/django/myapp/myapp' 
if path not in sys.path: 
    sys.path.append(path) 

sys.stdout = sys.stderr 
print sys.path 

os.environ['DJANGO_SETTINGS_MODULE'] = 'myapp.settings' 

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

這是Apache的錯誤日誌。我打印出sys.path,以便看到它的樣子。

[Tue Jun 05 14:54:07 2012] [error] ['/usr/lib/python27.zip', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/lib/python2.7/site-packages', '/usr/lib/python2.7/site-packages/PIL', '/usr/lib/python2.7/site-packages/setuptools-0.6c11.egg-info', '/home/user/.virtualenvs/myapp/lib/python2.7/site-packages', '/home/user/django/myapp/myapp'] 
[Tue Jun 05 14:54:07 2012] [error] [client 127.0.0.1] mod_wsgi (pid=1039): Target WSGI script '/srv/http/wsgi_scripts/myapp.wsgi' cannot be loaded as Python module. 
[Tue Jun 05 14:54:07 2012] [error] [client 127.0.0.1] mod_wsgi (pid=1039): Exception occurred processing WSGI script '/srv/http/wsgi_scripts/myapp.wsgi'. 
[Tue Jun 05 14:54:07 2012] [error] [client 127.0.0.1] Traceback (most recent call last): 
[Tue Jun 05 14:54:07 2012] [error] [client 127.0.0.1] File "/srv/http/wsgi_scripts/myapp.wsgi", line 17, in <module> 
[Tue Jun 05 14:54:07 2012] [error] [client 127.0.0.1]  import django.core.handlers.wsgi 
[Tue Jun 05 14:54:07 2012] [error] [client 127.0.0.1] ImportError: No module named django.core.handlers.wsgi 

如果您有任何建議或已經有類似的問題,請幫助。

感謝

回答

2

對於任何像我一樣,可能有類似的問題。您需要檢查存儲virtualenv所在目錄的整個路徑權限。

我檢查了主目錄並更改了權限,但忘記將權限更改爲我的用戶目錄,並修復了這個問題。

希望這會有所幫助。

+0

您使用了什麼特權? 775所有目錄? – Egel

3

你還沒有加入您的實際的virtualenv site-packages目錄的組合。嘗試:

import site 
site.addsitedir('/path/to/your/virtualenv/lib/python2.X/site-packages') 
# Where `X` is the specific version 
+0

其實我做過了,我只是格式化了問題,所以它顯示爲普通句子,我會更改它,對不起 – iblazevic