您的位置:首页 > 运维架构 > Apache

Win下python+Pydev+Django+apache+mod_wsgi开发部署配置记录

2013-04-10 14:51 441 查看


运行环境:win7 x64 + eclipse3.7.0 + python2.7 32bit + apache2.232bit +django1.3.1

Eclipse:

家庭必备,具体如何安装之类的,网上相关的很多,google下就懂了,这里就不多说了,因为android开发用它,所以在不熟悉的情况下,先将就选择用eclipse来开发了,等以后熟悉了,再考虑其他ide吧。(插个题外记录,在eclipse3.6中android编程代码智能补全会很卡,具体原因忘记了,也不知道后来解决没,记得以前试解决的时候用过各种方法,比如加长自动补全的时间等,但都不行,反正如果有出现这问题的话,乖乖换3.7吧)

Python2.7:

python分为2.*系列跟3.*系列,不过3.*无法向下兼容,很多自己新的东西,但现很多框架类库还是2.*兼容的比较好,所以,我这里还是选择了2.7.

下载地址:http://www.python.org/getit/

安装过程很简单,各种next就行了。

这里选择的是x32版本的python,因为在之后的mod_wsgi中,网上提供的版本基本都只兼容于32bit的python跟apache,今天调试的时候就试了半天,半天都import不进去,最后换了32bit的python 就正常了。

Pydev:

一个功能强大eclipse插件,提供了在eclipse下进行python应用程序的开发调试功能。我安装的时候最新版本是2.4.0。

安装方法:在 Eclipse 菜单栏中找到 Help栏,选择 Help > Install New SoftWare > Add

地址为:http://pydev.org/updates 然后读取完信息后,选中一直next就安装完了,之后就是对应的配置。

配置方法:Window > Preferences > Pydev > Interpreter – Python。在这里需要选中已经安装好的python解释器,建议auto config,我之前安装django的时候,pydev一直都获取不到,手动添加也一样,后来选择了auto config就行了,但估计原因不是在这里,不过先记录下解决方法。

Apache:

这个跟eclipse一样,满大街都是教程,记得也是因为mod_wsgi,选择记得选择2.232bit版本的。

Django1.3.1:

可以在https://www.djangoproject.com/download/ 找到下载,然后解压出来,之后在解压的目录下执行命令, python setup.py install , Django将被安装到你的Python安装目录的“site-package” 目录(Python从该目录寻找第三方库)。

mod_wsgi:

(1) 在http://code.google.com/p/modwsgi/wiki/DownloadTheSoftware?tm=2 下载到对应主机实际情况的mod_wsgi,在windows就是一个.so文件,提供的文件对于具体的py版本及ap版本,下载的时候一定要选对了。

(2) 放到apache安装目录下的modules文件夹内,名字可改可不改。

(3) 在apache的配置文件httpd.conf中,添加

LoadModule wsgi_module modules/mod_wsgi.so (后面那个就对应于你之前的名字)

Include “e:\apache\apache_django_wsgi.conf ” (apache_django_wsgi.conf为添加的配置文件,为了保持httpd.conf的独立性,这样管理起来也方便)

(4) 创建apache_django_wsgi.conf文件,具体如下:

listen 127.0.0.1:8999

<VirtualHost 127.0.0.1:8999>

ServerName localhost:8999

Alias /DjangoTest F:/Python/DjangoTest/src/DjangoTest

<Directory "/DjangoTest">

Order Deny,Allow

Allow from all

</Directory>

<Directory "/DjangoTest/webtest">

Order Deny,Allow

Allow from all

</Directory>

WSGIScriptAlias /gino "E:/tools/Apache Software Foundation/django_scripts/django.wsgi "

<Directory "E:/tools/Apache Software Foundation/django_scripts">

Order Deny,Allow

Allow from all

</Directory>

</VirtualHost>


这段配置文件,最开始的listen代码就是开启监听ip及端口,端口可以自己定义,之后的<virtualhost>标签创建了一个新的虚拟主机来做python的服务器,如果只是做本机测试,ServerName就填写”localhost:对应端口”。

之后的就是Alias,它的功能其实就是对文件路径做个别名映射,这样配置代码写起来就会方便一些。之后就是对django项目目录及会访问到的目录进行可访问权限设置。

最后就是WSGIScriptAlias设置,指向的就是相应项目的wsgi文件,参数一就是访问时的地址目录,第二个参数就是wsgi脚本的绝对路径,然后记得也要对存放wsgi文件的目录设置可读权限。例如我上面写的那样,之后访问http://127.0.0.1:8999/gino/就会将对应的对应指派到对应的wsgi来执行处理了。

(5) 创建wsgi脚本:这里参考了网上的代码,具体含义还没弄太懂

import sys

#首先将项目文件的根目录加到PythonPath中

path1 = r'F:\Python\DjangoTest'

#接着将setting.py文件所在的目录也加到PythonPath中

path2 = r'F:\Python\DjangoTest\src\DjangoTest'

path3 = r'F:\Python\DjangoTest\src'

if path1 not in sys.path:

sys.path.append(path1)

if path2 not in sys.path:

sys.path.append(path2)

if path3 not in sys.path:

sys.path.append(path3)

import os

#加载setting文件

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "DjangoTest.settings")

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()


最后重启apache,应该就能正常运行了.

参考资料:
http://cyfloel0516.sinaapp.com/?p=162 http://www.cnblogs.com/zhengyun_ustc/archive/2009/08/11/wsgi.html http://apps.hi.baidu.com/share/detail/23443856

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: