古月一刀 发表于 2015-8-3 10:49:30

[Django 1.5] Windows + Apache + wsgi配置


[*]基本步骤

[*]
下载安装Apache http://httpd.apache.org/download.cgi。
[*]
下载安装modwsgi 模块http://code.google.com/p/modwsgi/wiki/DownloadTheSoftware?tm=2
放入"Apache2.2\modules"路径里。
[*]
配置 Apache httpd.conf 文件:  添加配置文件路径到文件里

  LoadModule wsgi_module modules/mod_wsgi-win32-ap22py27-3.3.so

  配置wsgi 文件:

  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文件夹路径)

  文件夹权限:

  

  Options None

  AllowOverride None

  Order allow,deny

  Allow from all

  

  
 
  

      

      Order deny,allow

      Allow from all

      

  

  Admin 静态文件加载:

  Alias "/static" "C:/Python27/Lib/site-packages/django/contrib/admin/static/"

  

      Options None

  AllowOverride None

  Order allow,deny

  Allow from all

  


[*]问题分析与调试:

  由于Django在配置到apache服务器上的时候,官方网站并不建议把静态文件的加载工作拿给Django去做,而是交给服务器去完成。所以直接配置Django到服务器上之后会遇到css样式无法加载的问题。

  在配置Django 到Apache 服务器上的时候,由于只是从网上生搬硬套,没有去认真分析Apache的语法和配置原理,导致一直出错。所有静态文件(css,js库,img)都参照此配置方法配置。

下面以加载admin的CSS样式为例:

  Alias 语法


  参考:http://apache.jz123.cn/mod/mod_alias.html#alias

  
 
  Alisa 第一个参数是访问网站的URL路径
,比如如下配置:

  Alias "/static" "C:/Python27/Lib/site-packages/django/contrib/admin/static/"

  

  Options Indexes

  AllowOverride None

  Order allow,deny

  Allow from all

  

  
 
  此处URL的根目录不是访问网站的根目录(例如127.0.0.1),而是访问页面的相对目录

  比如:访问127.0.0.1/admin加载页面

      

      

      此处URL根目录是映射当前页面相对路径根目录,所以"/static"映射的是 "C:/Python27/Lib/site-packages/django/contrib/admin/static/"

  
 
  配置到此处之后访问仍然会有"403 Forbidden"的错误,原来是对RUL根目录权限设置问题:

  

  Order allow,deny

  Deny from All

  

  改成:

  

  Order allow,deny

  Allow from All

  

  OK了

  
 
  Django - syncdb causes error: "DatabaseError: no such table: django_site"



  solution:

  http://stackoverflow.com/questions/3631556/django-no-such-table-django-session

  总结这次调试:解决问题不能急于求成,简单粗暴的方法可能只会欲速则不达。
页: [1]
查看完整版本: [Django 1.5] Windows + Apache + wsgi配置