我正在嘗試用Apache和mod_wsgi爲django應用程序部署django。我已經爲配置選擇了this,並遵循「使用mod_wsgi守護進程模式」進行配置。用Apache和mod_wsgi部署django時出錯
這裏面/etc/httpd/conf.d我的Apache虛擬主機congfiguration文件
<VirtualHost *:80>
ServerName test.uws.com
ErrorLog /home/visho/http_error.log
WSGIDaemonProcess visho.uws.com python-path=/home/visho/vishoweb:/home/visho/vishoweb/venv/lib/python2.6
WSGIScriptAlias//home/visho/vishoweb/visho_website/wsgi.py
WSGIProcessGroup visho.uws.com
Alias /static /home/visho/static/
Alias /vishofiles /home/visho/
<Directory /home/visho/vishoweb/visho_website>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
</VirtualHost>
請看這裏提到的路徑內容。
的ls -l /家庭/ visho/vishoweb
drwxr-xr-x 3 visho visho 4096 Jun 10 07:39 adminuser
-rw-r--r-- 1 visho visho 256 Jun 10 06:12 manage.py
-rw-r--r-- 1 visho visho 75 Jun 10 06:12 requirements.txt
drwxr-xr-x 5 visho visho 4096 Jun 10 07:23 venv
drwxr-xr-x 2 visho visho 4096 Jun 10 10:36 visho_website
ls -l命令/home/visho/vishoweb/venv/lib/python2.6
lrwxrwxrwx 1 visho visho 39 Jun 10 07:23 _abcoll.py -> /opt/python2.6/lib/python2.6/_abcoll.py
-rw-r--r-- 1 visho visho 24369 Jun 10 07:23 _abcoll.pyc
lrwxrwxrwx 1 visho visho 35 Jun 10 07:23 abc.py -> /opt/python2.6/lib/python2.6/abc.py
-rw-r--r-- 1 visho visho 6412 Jun 10 07:23 abc.pyc
lrwxrwxrwx 1 visho visho 38 Jun 10 07:23 codecs.py -> /opt/python2.6/lib/python2.6/codecs.py
-rw-r--r-- 1 visho visho 39635 Jun 10 07:23 codecs.pyc
lrwxrwxrwx 1 visho visho 35 Jun 10 07:23 config -> /opt/python2.6/lib/python2.6/config
lrwxrwxrwx 1 visho visho 40 Jun 10 07:23 copy_reg.py -> /opt/python2.6/lib/python2.6/copy_reg.py
-rw-r--r-- 1 visho visho 5519 Jun 10 07:23 copy_reg.pyc
drwxr-xr-x 2 visho visho 4096 Jun 10 07:23 distutils
lrwxrwxrwx 1 visho visho 38 Jun 10 07:23 encodings -> /opt/python2.6/lib/python2.6/encodings
lrwxrwxrwx 1 visho visho 39 Jun 10 07:23 fnmatch.py -> /opt/python2.6/lib/python2.6/fnmatch.py
-rw-r--r-- 1 visho visho 3765 Jun 10 07:23 fnmatch.pyc
lrwxrwxrwx 1 visho visho 43 Jun 10 07:23 genericpath.py -> /opt/python2.6/lib/python2.6/genericpath.py
-rw-r--r-- 1 visho visho 3602 Jun 10 07:23 genericpath.pyc
lrwxrwxrwx 1 visho visho 40 Jun 10 07:23 lib-dynload -> /opt/python2.6/lib/python2.6/lib-dynload
lrwxrwxrwx 1 visho visho 41 Jun 10 07:23 linecache.py -> /opt/python2.6/lib/python2.6/linecache.py
-rw-r--r-- 1 visho visho 3454 Jun 10 07:23 linecache.pyc
lrwxrwxrwx 1 visho visho 38 Jun 10 07:23 locale.py -> /opt/python2.6/lib/python2.6/locale.py
-rw-r--r-- 1 visho visho 0 Jun 10 07:23 no-global-site-packages.txt
lrwxrwxrwx 1 visho visho 38 Jun 10 07:23 ntpath.py -> /opt/python2.6/lib/python2.6/ntpath.py
-rw-r--r-- 1 visho visho 14 Jun 10 07:23 orig-prefix.txt
lrwxrwxrwx 1 visho visho 34 Jun 10 07:23 os.py -> /opt/python2.6/lib/python2.6/os.py
-rw-r--r-- 1 visho visho 28085 Jun 10 07:23 os.pyc
lrwxrwxrwx 1 visho visho 41 Jun 10 07:23 posixpath.py -> /opt/python2.6/lib/python2.6/posixpath.py
-rw-r--r-- 1 visho visho 11901 Jun 10 07:23 posixpath.pyc
lrwxrwxrwx 1 visho visho 34 Jun 10 07:23 re.py -> /opt/python2.6/lib/python2.6/re.py
-rw-r--r-- 1 visho visho 13815 Jun 10 07:23 re.pyc
drwxr-xr-x 7 visho visho 4096 Jun 10 07:23 site-packages
-rw-r--r-- 1 visho visho 27552 Jun 10 07:23 site.py
-rw-r--r-- 1 visho visho 25395 Jun 10 07:23 site.pyc
lrwxrwxrwx 1 visho visho 43 Jun 10 07:23 sre_compile.py -> /opt/python2.6/lib/python2.6/sre_compile.py
-rw-r--r-- 1 visho visho 11917 Jun 10 07:23 sre_compile.pyc
lrwxrwxrwx 1 visho visho 45 Jun 10 07:23 sre_constants.py -> /opt/python2.6/lib/python2.6/sre_constants.py
-rw-r--r-- 1 visho visho 6248 Jun 10 07:23 sre_constants.pyc
lrwxrwxrwx 1 visho visho 41 Jun 10 07:23 sre_parse.py -> /opt/python2.6/lib/python2.6/sre_parse.py
-rw-r--r-- 1 visho visho 20843 Jun 10 07:23 sre_parse.pyc
lrwxrwxrwx 1 visho visho 35 Jun 10 07:23 sre.py -> /opt/python2.6/lib/python2.6/sre.py
lrwxrwxrwx 1 visho visho 36 Jun 10 07:23 stat.py -> /opt/python2.6/lib/python2.6/stat.py
-rw-r--r-- 1 visho visho 3013 Jun 10 07:23 stat.pyc
lrwxrwxrwx 1 visho visho 37 Jun 10 07:23 types.py -> /opt/python2.6/lib/python2.6/types.py
-rw-r--r-- 1 visho visho 2806 Jun 10 07:23 types.pyc
lrwxrwxrwx 1 visho visho 40 Jun 10 07:23 UserDict.py -> /opt/python2.6/lib/python2.6/UserDict.py
-rw-r--r-- 1 visho visho 10287 Jun 10 07:23 UserDict.pyc
lrwxrwxrwx 1 visho visho 40 Jun 10 07:23 warnings.py -> /opt/python2.6/lib/python2.6/warnings.py
-rw-r--r-- 1 visho visho 13745 Jun 10 07:23 warnings.pyc
的ls -l /家/ visho/vishoweb/visho_website
-rw-r--r-- 1 visho visho 0 Jun 10 06:12 __init__.py
-rw-r--r-- 1 visho visho 145 Jun 10 07:39 __init__.pyc
-rw-r--r-- 1 visho visho 2599 Jun 10 07:38 settings.py
-rw-r--r-- 1 visho visho 2767 Jun 10 07:39 settings.pyc
-rw-r--r-- 1 visho visho 492 Jun 10 06:12 urls.py
-rwxr-xr-x 1 visho visho 400 Jun 10 10:36 wsgi.py
配置Apache,當我的籤apache的語法運行httpd -t
後,它說一切好。
但是,當我重新加載Apache我收到以下錯誤。請看看它,並幫助我解決這個問題,因爲我是初學者,我不知道發生了什麼問題。
這是日誌
[Tue Jun 10 10:51:48 2014] [error] Traceback (most recent call last):
[Tue Jun 10 10:51:48 2014] [error] File "/home/visho/vishoweb/visho_website/wsgi.py", line 9, in <module>
[Tue Jun 10 10:51:48 2014] [error] import os
[Tue Jun 10 10:51:48 2014] [error] ImportError: No module named os
[Tue Jun 10 10:53:13 2014] [error] mod_wsgi (pid=7192): Unable to import 'site' module.
[Tue Jun 10 10:53:27 2014] [error] mod_wsgi (pid=7192): Unable to import 'site' module.
[Tue Jun 10 10:53:27 2014] [error] [client 14.141.33.202] mod_wsgi (pid=7192): Target WSGI script '/home/visho/vishoweb/visho_website/wsgi.py' cannot be loaded as Python module.
[Tue Jun 10 10:53:27 2014] [error] [client 14.141.33.202] mod_wsgi (pid=7192): Exception occurred processing WSGI script '/home/visho/vishoweb/visho_website/wsgi.py'.
請注意,這是我的/home/visho/vishoweb/visho_website/wsgi.py內容。
WSGI config for visho_website project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/1.6/howto/deployment/wsgi/
"""
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "visho_website.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
請不要暗示有人應該設置DocumentRoot來引用包含其源代碼的目錄。這是導致他們出現安全問題的一個步驟。如果WSGIScriptAlias現在被刪除了,那麼它們的源代碼將是可下載的。 –
謝謝你的格雷厄姆 – hellsgate