Windows下Apache+mod_python+Django配置
Apache
首先要安装Apache,我安装的版本是2.2.*;
Python
python肯定是要安装的,我安装的版本是2.5的,高版本的还没有mod_python支持,那就需要用mod_wsgi来支持,那个我配过,虽然成功了,但是没有去详细研究wsgi这个东东,不过是这肯定是个趋势,mod_python是个太监产品。跑题了。Python安装目录:D:\Python25,安装完成后,将D:\Python25加入系统环境变量的Path中。
mod_python
针对Apache2.2需要安装mod_python-3.3.1.win32-py2.5-Apache2.2.exe,如果Apache是2.0.*版本则需安装mod_python-3.3.0b.win32-py2.5-Apache2.0.exe,否则会在重启Apache时报找不到mod_python.so的错误,而你看modules下面mod_python.so却在里面,这说明版本安装不对。
mod_python的安装比较简单,中间要选择下你的Apache安装目录。
Django
要支持Django,就要去下载Django。我下载的版本是Django-1.3.1。
Django安装,解压之后,MSDOS进入其目录,运行命令“python setup.py install” 就可以把Django安装成功了,成功后会在D:\Python25\Lib\site-packages目录下看到django文件夹。安装完之后,将D:\python25\Lib\site-packages\django\bin加入系统环境变量的Path中。
Project建立
最好在自己的工作目录,我的工作目录是:E:/Applications/ForPython,进入MSDOS,运行命令“django-admin.py startproject pyweb”,其中pyweb是我的项目名字,成功后会在ForPython下看到pyweb目录。
Apache配置
前面都是简单的东西,以下的配置才是本篇文章的核心,打开Apache配置文件httpd.conf,找到一大堆的LoadModule,在其前面加入以下语句:
LoadModule python_module modules/mod_python.so
在httpd.conf最后加入
<VirtualHost 127.0.0.1:80>
DocumentRoot "E:/Applications/ForPython"
<Directory "E:/Applications/ForPython">
AllowOverride None
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
<Location "/pyweb">
SetHandler python-program
#AddHandler python-program .py
PythonPath "[‘D:/Python25/Lib/site-packages/django/bin‘,‘D:/Python25/Lib/site-packages/django‘,‘E:/Applications/ForPython‘,‘E:/Applications/ForPython/pyweb‘]+sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE pyweb.settings
PythonInterpreter inves
PythonDebug On
</Location>
</VirtualHost>
注意:PythonPath后面的定义,尽量包含Django的路径和你项目的路径,不然会提示路径错误,而发生错误的。
至此,整个配置完成,重启Apache,IE中访问:http://localhost/pyweb,看到下图,说明成功了。如果你的配置不能成功,请多关注Apache的error.log,从中找原因。
如还是不能解决问题,大不了将所有的推倒重做。