windows上搭建apache+mysql+django的过程.
一 安装python-2.6.5
安装python后,最好能把以下几个目录的路径添加到windows的环境变量中.
1 python2.6.5的安装目录, 如c:\python.一些工具及教程会直接使用命令行中的python命令.不把python的安装路径添加到环境变量中可能会遇到困惑.
2 python安装目录下的scripts目录.如c:\python\scripts.可能django的django-admin.py文件及python的包安装工具easy_install.exe会放在这个目录下.
二 安装django-1.2.5
1 下载好django的压缩包后,你会看到目录下有个setup.py文件.cmd命令进入dos窗口,cd进入setup.py所在的目录.执行python setup.py install即可.其实就是复制django到你的python安装目录下的Lib\site-packages\django中.
2 接下来要创建一个django项目.apache和mysql的配置还得在这个项目的文件中进行.django提供了django-admin.py这个文件让你方便的创建一个"空白"项目.很简单,随便创建一个文件夹作为你的项目根目录.cd进入这个目录,输入django-admin.py startproject mysite即可,这将在你提供的项目根目录下创建一个mysite文件夹.mysite为你起的项目名字.
提示:以上2步如果你未把python, python\scripts添加到环境变量中,会出现"...不是内部命令..."的错误提示.
三 apache+mod_wsigi安装.
django与apache的接口使用mod_wsgi,官方目前所推荐.
也可以使用mod_python,因为该包作者已经停止更新,今后的django版本将不再支持它.
1 安装apache.我用的版本为:httpd-2.2.17-win32-x86-openssl-0.9.8o.msi.假定安装到c:\apache.
2 a) 下载mod_wsgi(官网给的是源码).这里给一个已经编译好的mod_wsgi.so文件.
http://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-win32-ap22py26-3.3.so
b) 下载的文件为:mod_wsgi-win32-ap22py26-3.3.so.接下来就对这个文件进行一些配置.将该文件复制到apache安装目录下的modules目录.apache与各种框架,工具的接口都放在这了.
c) 配置apache\conf目录下的httpd.conf文件.添加以下内容到文件中:
LoadModule wsgi_module modules/mod_wsgi-win32-ap22py26-3.3.so
httpd.conf文件有个位置专门LoadModule.喜欢整齐的话就添加到那里吧.
3 apache目前已经知道mod_wsgi的存在了.接下来在我们刚创建的项目(mysite)中进行一些配置,让django项目知道apache的存在.
在mysite目录中建一个apache目录,在里边创建2个文件apache_django_wsgi.conf,django.wsgi.
a) apache_django_wsgi.conf文件中添加以下内容.(其实这些内容可以直接写在前面的httpd.conf文件里)
# 设置static静态资源的访问路径
Alias /static/ "H:/project/django/mysite/media/"
<Directory "H:/project/django/mysite/media">
Order deny,allow
Allow from all
</Directory>
# 设置django admin静态资源的访问路径
Alias /media/ "H:\Program\python\2.6\Lib\site-packages\django\contrib\admin\media\"
<Directory "H:\Program\python\2.6\Lib\site-packages\django\contrib\admin">
Order deny,allow
Allow from all
</Directory>
# 设置root,不要使用"^/"
WSGIScriptAlias / "H:/project/django/mysite/apache/django.wsgi"
<Directory "H:/project/django/mysite/apache">
Order deny,allow
Allow from all
</Directory>
注意把以上内容中的所有路径替换为你自己的.
b) django.wsgi文件中添加以下内容.
import 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)
sys.path.append(workspace)
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()
注意mysite是项目名字.如果你用了别的项目名字,记得替换掉.
c) 回到apache安装目录中的httpd.conf文件,在末尾添加:
意思其实就是包含apache_django_wsgi.conf文件的内容.同样记得替换为你自己的路径.重启apache.
四 mysql+mysql_python的安装
1 a) 安装mysql.我安装的版本是msi的版本(mysql-5.5.9-win32.msi).如果你使用zip版本安装,将不会在注册表里建立与mysql相关的表项,而mysql_python的安装需要搜索注册表里的相关表项(我也很晕为什么它这么做).所以一定要使用zip解压版的同学, 记得自己建立一个reg文件,在HKEY_LOCAL_MACHINE\SOFTWARE下建立MySQL AB\MySQL Server项,然后填上对应的值(版本号,安装位置等).
[HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB\MySQL Server]
"DataLocation"="D:\Documents and Settings\All Users\Application Data\MySQL\MySQL Server 5.5\"
"Location"="H:\Program\MySQL\MySQL Server 5.5\"
"Version"="5.5.9"
双击该reg文件即可.既然使用zip安装,相信你应该知道如何替换上边的内容为你自己的值.
b) 下载mysql-connector-c-6.0.2-win32.msi.这个是mysql在c语言环境中的sdk开发包.安装.
2 安装mysql_python很痛苦,本来就不是特别为windows准备的,忍着吧.我是参考这篇文章(英文)来的:
http://www.fuyun.org/2009/12/install-mysql-for-python-on-windows/
a) 下载MySQL-python-1.2.3.tar.gz文件.解压到某个目录.假设为c:\MySQL-python-1.2.3.
b) 进入cmd窗口,cd命令进入MySQL-python-1.2.3目录,执行:
python ez_setup.py
将安装easy_install到python\scripts中.接下来可用easy_install这个工具自动安装.执行
easy_install "MySQL-python=1.2.3"
我实际安装过程中没有使用上述命令.而是执行了
setup.py biuld
接着就悲惨的跳出一堆错误.以下是相关的修改(easy_install "MySQL-python=1.2.3"应该也会遇到这些错误).主要是关于文件路径,解析错误,注册表的.
c) 修改site.cfg文件.将
修改为你自己的版本号.如果registry_key前有#号注释,记得去掉.
d) 修改setup_windows.py中的内容.
libraries = [ 'kernel32', 'advapi32', 'wsock32', client ]
include_dirs = [ os.path.join(mysql_root, r'include'), "H:\\Program\\MySQL\\MySQL Connector C 6.0.2\\include" ]
就是修改library_dirs及include_dirs,记得替换为你自己的路径.这里实际上是添加mysql的c语言sdk的头文件及库.根据sdk版本不同,文件目录结构可能不同,自己注意了.
e) 修改setup_common.py中的内容.
config.read([os.path.dirname(__file__)+'\\metadata.cfg', os.path.dirname(__file__)+'\\site.cfg'])
找到config.read所在一行,修改如上.
f) 去到python的安装目录,在Lib\distutils下找到msvc9compiler.py文件,搜索到
ld_args.append(‘/MANIFESTFILE:’ + temp_manifest)所在行.在该行后添加一行:
ld_args.append(‘/MANIFEST’)
自己注意python中的缩进.
g) 执行setup.py install即可安装.
3 测试,执行以下python脚本如无错误提示即可.
import MySQLdb