代码改变世界

Win配置Apache+mod_wsgi+django环境+域名

2012-03-10 22:15  Rollen Holt  阅读(1892)  评论(0编辑  收藏  举报

转自:http://liluo.org/2010/05/win-apache-mod_wsgi-django-domain/

Python是落落的最爱,Django是Python web framework中的佼佼者,所以一直超爱。当然,Python web server也有N多选择,这里落落使用Apache+mod_wsgi来配置(也有用apache+mod_Python来配置的,不过貌似在Out中……)。如果有朋友是Google或者Baidu过来想了解下是怎样配置的,也许落落这篇博文可以帮到你。

首先讲下落落使用的软件版本:

Winxp

Apache(2.2,xampp1.7.3) 下载地址

django(1.1.1) 下载地址

mod_wsgi(mod_wsgi-win32-ap22py26-3.0 ) 下载地址

安装配置步骤:

1、  选择与自己python相匹配的mod_wsgi下载,重命名为mod_wsgi.so并丢到Apache安装目录里的modules 文件夹中。

2、  在Apache配置文件httpd.conf中,增加一行:

LoadModule wsgi_module modules/mod_wsgi.so

3、  配置域名

进入apache\conf\extra目录,在httpd-vhosts.conf 文件中添加以下内容:

<VirtualHost *:80>
ServerName      codeluo.com        #测试域名
ServerAlias       www.codeluo.com    #测试域名
DocumentRoot    F:/htdocs
WSGIScriptAlias / F:/htdocs/demo/conf/demo.wsgi
Alias /static F:/htdocs/demo/static
<Location "/static">
SetHandler None
</Location>
<Directory " F:/htdocs/demo/static">
Order Deny,Allow
Allow from all
</Directory>
<Directory " F:/htdocs/demo/wsgi">
Order Deny,Allow
Allow from all
</Directory>
<Directory "/usr/local/lib/site-packages/django/contrib/admin/media">
Order Deny,Allow
Allow from all
</Directory>
Alias "/media"  "/usr/local/lib/site-packages/django/contrib/admin/media"
<Location "/media">
SetHandler None
</Location>
</VirtualHost>

*配置域名请确保

<1>C:\WINDOWS\system32\drivers\etc\hosts文件中添加”127.0.0.1 codeluo.com”(引号中的内容,其中codeluo.com可更换为你自己测试用的域名)

<2>apache\conf\extra目录httpd-vhosts.conf文件”#NameVirtualHost *:80”更改为NameVirtualHost *:80,即去掉前面的”#”

4、  创建命名为demo(与之前配置命名相匹配)的项目,并在项目中新建conf文件夹,新建demo.wsgi文件,内容:

import os
import sys

sys.stdout = sys.stderr

from os.path import abspath, dirname, join
from site import addsitedir

from django.core.handlers.wsgi import WSGIHandler

sys.path.insert(0, abspath(join(dirname(__file__), "../")))
sys.path.insert(0, abspath(join(dirname(__file__), "http://www.cnblogs.com/")))

os.environ["DJANGO_SETTINGS_MODULE"] = "demo.settings " #your settings module

application = WSGIHandler()

*经落落测试,此文件中注释中不能使用中文,安全起见请勿使用非英文、数字之外字符。

5、重启apache,即可看到It worked!。