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

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,deny
    	Options Indexes
    	Allow 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.wsgi
    application = 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,百度就算了,基本搜不到你想要的,可以这么说,搞程序开发的,如果用百度,我可以认为你不专业,呵呵,扯远了。这方面的问题,以后多多交流。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值