新博客地址:http://gorthon.sinaapp.com/
客户的变态要求我想不是我一个人遇到这样的吧……这种搭配除了折磨人还能干啥?
1. 先配置django与apache:
【1】 安装python2.6.5(默认安装)(添加PATH环境变量C:\Python26\和C:\Python26\Scripts)
【2】 安装django1.3.1(默认安装)
【3】 安装apache2.2(默认安装)(安装前先禁用iis),如果没有禁用iis,80端口被占用会出错,出错时:
netstat -nao
查看当前哪些端口正在使用<netstat -h>
C:\Documents and Settings\Administrator>netstat -nao
Active Connections
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 712
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING 424
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 1592
TCP 127.0.0.1:1026 0.0.0.0:0 LISTENING 1548
UDP 0.0.0.0:445 *:* 4
UDP 0.0.0.0:1029 *:* 772
UDP 0.0.0.0:1033 *:* 772
UDP 127.0.0.1:1031 *:* 1764
任务管理器相看PID为4的进程,发现是System,进入iis控制面板停止正在运行的网站,再输入命令发现没有80端口了,也可以下面这样
进入apache配置文件:
C:\Program Files\Apache Software Foundation\Apache2.2\conf
将#Listen 12.34.56.78:80
Listen 80改成Listen 8010
重启apache,ok。
或者直接停止IIS服务【强烈推荐】:
一、控制面板 - 管理工具 ,点击“服务”图标。
二、打开“服务”窗口后,右键点击“IIS Admin Service”,然后选择“停止”,再把他禁用掉。
【4】 配置apache和wsgi:
【4.1】 修改conf/httpd.conf文件:
Listen 12.34.56.78:8010#修改为相应ip和端口
【4.2】 将mod_wsgi.so扔到apache安装目录的modules目录下面
【4.3】 修改conf/httpd.conf文件:
添加两行如下:
LoadModule wsgi_module modules/mod_wsgi.so
Include "C:/LQF/apache_wsgi_conf/apache_django_wsgi.conf"
(试过python2.7.1和2.7.2,添加上面的第一句话后都不能启动apache,后来改成python2.6.5就可以正常使用了,可能是mod_wsgi.so编译的时候python2.7版本的问题,我看网上别人的2.7可以用,我的却不可以,看来我rp=0……)
【4.3.1】 在C:/LQF目录下新建apache_wsgi_conf目录, 其中LQF是我的Django的工程目录(即通过django-admin.py start project LQF产生的目录)
apache_wsgi_conf目录下新建两个文件,一个是apache_django_wsgi.conf,内容为:
Alias /static C:/LQF/media <Directory "C:/LQF/media/static/"> Order allow,deny Options Indexes Allow from all #IndexOptions FancyIndexing </Directory> #for testing wsgi #WSGIScriptAlias / "C:/LQF/apache_wsgi_conf/test.wsgi" WSGIScriptAlias / "C:/LQF/apache_wsgi_conf/django.wsgi" <Directory "C:/LQF/"> Allow from all </Directory>
# media 目录是存放js,img,css等静态文件的目录
另外一个目录是django.wsgi,内容为:
import os import os.path as osp import sys cur_path = osp.dirname(__file__) project_path = osp.dirname(cur_path) app_path = osp.join(project_path, 'LQFapp') root_path = osp.dirname(project_path) path = (project_path, app_path, root_path) for p in path: if p not in sys.path: sys.path.insert(0, p) os.environ['DJANGO_SETTINGS_MODULE'] = 'LQF.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
# 其中LFQapp是我的应用目录(即通过django-admin.py startapp LQFapp产生的目录)
【4.3】 修改上一步中的两个文件使相应的路径正确
2. 配置sql server 2005:
【1】 安装sql server 2005(默认安装)
【2】 安装SQL Server Management Studio Express(默认安装)
【3】 安装pywin32(v210以上)(默认安装)
【4】 将django-mssql/sqlserver_ado目录(这个是用于django连接sql server的第三方库,pyodbc我没有配置成功,所以就用django-mssql了,托管在google code上面,用mercurial下载下来就好了hg clonehttps://code.google.com/p/django-mssql/,如果没有安装mercurial,不用着急,本文最后有提供下载地址)放到LQF目录下面,也可以先安装setup tools然后python setup.py install将其安装在系统目录
【5】 修改settings.py数据库配置:
DATABASES = { 'default': { 'ENGINE': 'sqlserver_ado', 'NAME': 'LQFapp', 'USER': '', 'PASSWORD': '', 'HOST': os.environ['COMPUTERNAME'] + '\\' + os.environ.get('SQLINSTANCE', 'SQLEXPRESS'), # 如果是正版的sql server 2005将'SQLEXPRESS'改成'ss2005',具体的参数可以利用SQL Server Management Studio Express查看连接信息 'PORT': '', } }
【6】 利用SQL Server Management Studio Express新建一个名为LQFapp的数据库
【7】 工程目录(LQF)下python manage.py syncdb
【8】 通过上面的步骤数据库可以成功创建并产生表,但是启动apache之后,出现500错误,查看日志文件,提示找不到pywintypes26.dll,但是c:\windows\system32里面是有这个dll的,因为以前出现过这种错误(安装mysql的时候),解决方法:
将c:\windows\system32下面的pywintypes26.dll pythoncomloader26.dll pythoncom26.dll这三个dll复制到C:\Python26下面,重启apache,访问就可以了。
【9】如果上面还出现问题就把sqlserver_ado目录复制到C:\Python26\Lib\site-packages\django\db\backends下面试试。
下载地址:
djanog-mssql-for-python2.6 mod-wsgi-for-python2.6.so
apache-wsgi-conf