Windows下Apache+mod_python+Django配置

时间:2021-07-20 19:40:37
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,从中找原因。

如还是不能解决问题,大不了将所有的推倒重做。

Windows下Apache+mod_python+Django配置