最近在学习django,并在windows64下用django搭建一个功能简单的web,采用django自带的runserver测试是正常的,现进行Apache下的部署出现了不少问题,欢迎你们指正,谢谢。python
python版本:3.4.3 64bit
django版本:1.6
django项目的目录结构为:
E:\web
--web
--__init__.py
--settings.py
--urls.py
--wsgi.py
--manage.py
Apache安装:
修改Apache目录的配置文件http.conf
Define SRVROOT "c:/apache/Apache24"
ServerRoot "${SRVROOT}"
并相应路径为安装路径
此时打开浏览器访问localhost,显示it works!(来源于Apache24/htdocs下的文件),说明apache安装成功
mod_wsgi安装:
将whl后缀改成zip解压便可,将文件mod_wsgi.so拷至apache的module目录下,并修改http.conf:
LoadModule wsgi_module modules/mod_wsgi/mod_wsgi.so
2.修改wsgi.py文件,参考网上的写法:
import os
import django.core.handlers.wsgi
import sys
sys.path.append('E:\web')
sys.path.append('E:\web\web')
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "web.settings")
application = django.core.handlers.wsgi.WSGIHandler()
3.继续配置http.conf文件,增长行(暂未添加静态文件配置):
#指定项目路径
WSGIPythonPath E:/web
#指定web项目的wsgi.py配置文件路径
WSGIScriptAlias /web E:/web/web/wsgi.py
<Directory e:/web/web>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
然而,再启动服务器以后,访问localhost,仍能正常显示It works!
可是访问项目localhost/web,日志里又出新的错误了:
[Wed Oct 28 14:50:56.492904 2015] [wsgi:error] [pid 12224:tid 908] [client ::1:3879] mod_wsgi (pid=12224): Target WSGI script 'E:/web/web/wsgi.py' cannot be loaded as Python module.
[Wed Oct 28 14:50:56.492904 2015] [wsgi:error] [pid 12224:tid 908] [client ::1:3879] mod_wsgi (pid=12224): Exception occurred processing WSGI script 'E:/web/web/wsgi.py'.
不知道是哪里配置错了呢?请你们帮我批评指正。