Windows下Djang+Wsgi+Apache配置,各种该相关配置问题的终极解决方案

来源:互联网 发布:知乎snh48 编辑:程序博客网 时间:2024/05/01 05:21

Djang+Wsgi+Apache Config on Windows

之前写了一篇 Django+Mod_Python+Apache的配置文章(http://blog.csdn.net/l_courser/article/details/6818606)。

毕竟,Mod_Python是即将被淘汰的玩意儿,Wsgi才是最新的“王道”,结合网上一些配置,我整理了一下,并亲测成功,发出来供大家参考。

如有其它疑问,请随时留言。欢迎转载,转载时请注明出处,谢谢!


准备以下内容:

  • Python26+,此处我用的是 Python27,Python3+版本未使用过,听说有很多不同,以后用到的时候再研究;
  • 下载合适的Wsgi版本,此处我使用的是:mod_wsgi-win32-ap22py27-3.3.so,为了使用方便将其改名为:mod_wsgi.so;
  • 该文件下载地址:http://modwsgi.googlecode.com/files/mod_wsgi-win32-ap22py27-3.3.so;
  • Django使用的是此时间点最新的1.3.1
  • Apache2.2.* ;
以上内容,在我的网盘均有下载,网盘这东东没整明白,以后再把详细下载地址放上来:http://www.dbank.com/netdisk/index.html?v=2.3.5#/我的网盘

东东都准备完成了,开始各种安装,一般的不说了,说说wsgi吧。将下载的文件拷贝到 Apache安装目录的 moudles 下面。
整个安装完成了。
配置
  • Django配置
  • 安装完成后,将Django的bin目录最好放在系统的环境的PATH中,命令行进入D:/website,执行django-admin.py startproject myweb
  • Apache配置
  • 在 httpd.conf 合适的地方加上:LoadModule wsgi_module modules/mod_wsgi.so;
  • 最后加上:Include "D:/website/apache_django_wsgi.conf";("D:/website”为你的网站根目录);
  • 在 D:/website中建立以下两个文件:django.wsgi和apache_django_wsgi.conf,文件内容如下:
  • apache_django_wsgi.conf
  • Alias /static/admin/ "D:/website/myweb/static/admin/"<Directory "D:/website/myweb/static/admin">Order allow,denyOptions IndexesAllow from all</Directory> WSGIScriptAlias / "D:/website/django.wsgi" <Directory "D:/website/myweb">Allow from all</Directory><Directory "d:/website"> Allow from all</Directory>#for testing wsgi#WSGIScriptAlias / "d:/Djangoweb/test.wsgi"  

    django.wsgi内容如下
  • import os, sys#Calculate the path based on the location of the WSGI script.apache_configuration= os.path.dirname(__file__)project = os.path.dirname(apache_configuration)workspace = os.path.dirname(project)#os.chdir('D:/website/myweb')     #注意这句话,之前我没有加这句话,导致无法找到项目路径sys.stdout = sys.stderr#将日志输出到apache下的error.log便于发现问题sys.path.append(workspace)#print workspace sys.path.append(workspace + "website")os.environ['DJANGO_SETTINGS_MODULE'] = 'myweb.settings'import django.core.handlers.wsgiapplication = django.core.handlers.wsgi.WSGIHandler()

    apache_django_wsgi.conf文件的内容中,最后一行注释的test.wsgi文件内容如下:
  • def application(environ, start_response):status = '200 OK'output = 'Hello World!'response_headers = [('Content-type', 'text/plain'),('Content-Length', str(len(output)))]start_response(status, response_headers)return [output]
    该文件用来测试wsgi是否配置成功用的,测试的时候,取消apache_django_wsgi.conf中以下注释:#WSGIScriptAlias / "d:/Djangoweb/test.wsgi" 并将WSGIScriptAlias / "D:/website/django.wsgi"加上注释。测试结果如果显示 Hello World!,则成功,否则失败,请挥剑自宫^_^在整个安装、配置、测试的过程中,多关注 error.log,对无法解决的问题,多google,百度就算了,基本搜不到你想要的,可以这么说,搞程序开发的,如果用百度,我可以认为你不专业,呵呵,扯远了。这方面的问题,以后多多交流。
原创粉丝点击