[Django 1.5] Windows + Apache + wsgi配置
基本步骤
LoadModule wsgi_module modules/mod_wsgi-win32-ap22py27-3.3.so
WSGIScriptAlias / "C:/Aptana Studio 3 Workspace/MyProjet/mysite/src/mysite/wsgi.py" (wsgi文件路径,即需要Apache加载的Django项目的wsgi文件路径)
WSGIPythonPath "C:/Aptana Studio 3 Workspace/MyProjet/mysite/src"(wsgi文件夹路径)
<Directory "C:/Aptana Studio 3 Workspace/MyProjet/mysite/src">
Alias "/static" "C:/Python27/Lib/site-packages/django/contrib/admin/static/"
<Location "C:/Python27/Lib/site-packages/django/contrib/admin/static">
问题分析与调试:
在配置Django 到Apache 服务器上的时候,由于只是从网上生搬硬套,没有去认真分析Apache的语法和配置原理,导致一直出错。所有静态文件(css,js库,img)都参照此配置方法配置。
下面以加载admin的CSS样式为例:
参考:http://apache.jz123.cn/mod/mod_alias.html#alias
Alisa 第一个参数是访问网站的URL路径 ,比如如下配置:
Alias "/static" "C:/Python27/Lib/site-packages/django/contrib/admin/static/"
<Location "C:/Python27/Lib/site-packages/django/contrib/admin/static">
此处URL的根目录不是访问网站的根目录(例如127.0.0.1),而是访问页面的相对目录
<link rel="stylesheet" type="text/css" href="
/static/admin/css/base.css" />
<link rel="stylesheet" type="text/css" href="/static/admin/css/login.css" />
此处URL根目录是映射当前页面相对路径根目录,所以"/static"映射的是 "C:/Python27/Lib/site-packages/django/contrib/admin/static/"
配置到此处之后访问仍然会有"403 Forbidden"的错误,原来是对RUL根目录权限设置问题:
Django - syncdb causes error: "DatabaseError: no such table: django_site"
solution:
http://stackoverflow.com/questions/3631556/django-no-such-table-django-session
总结这次调试:解决问题不能急于求成,简单粗暴的方法可能只会欲速则不达。