用Apache快速架设Django应用

通过孟繁永

用Apache快速架设Django应用

Python,装django (解压到Python安装目录,从cmd窗口进入django目录,输入python setup.py install),也可以再去下svn升级,详情http://www.djangoproject.com

Apache版本:apache_2.2.4-win32-x86-no_ssl.msi       下载地址:http://httpd.apache.org/

ModPython:mod_python-3.3.1.win32-py2.5-Apache2.2.exe     下载地址:http://www.apache.org/dist/httpd/modpython/win

依次安装上面两个东西,全部默认设置即可。

对于Apache,可安装到磁盘下较近的一个路径,如:c:\apache 以便日后修改配置时方便打开。

对于ModPython,它将使Apache支持django的运行,安装将近尾声时会提示选择Apache的安装目录,目的是为您配置httpd.conf,如果选错了也没有关系,可以在下面的配置中手动操作。

以下段落将参考(http://www.cnblogs.com/zhengyun_ustc/archive/2006/11/20/django_apache_win32.html   http://thinkhole.org/wp/2006/04/03/django-on-windows-howto/)完成。

为了方便说明,用我的一个问卷调查为例:下载  

先说明一下两个命名:

wenjuan: my project        (django-admin.py statrproject wenjuan)

inves: a app in my project      (wenjuan/django-admin.py startapp inves)

models.py 里面Subject是问卷主题(first是第一题的题号),Question是问题(number是手动设的题号,为了根据选项跳转方便),Answer是选项(next是选了这个选项后跳到下一题的题号)

为了和参考的那篇接近,可以将例程下载放在c:\django\下,这样就如 c:\django\wenjuan\inves

第一步我们来改一下wenjuan中的settings.py,首先配置好

DATABASE_ENGINE = ‘mysql’

DATABASE_NAME = ‘yourdatebase’

DATABASE_USER = ”

DATABASE_PASSWORD = ”

DATABASE_HOST = ”

DATABASE_PORT = ”

然后manage.py syncdb(也可以先用manage.py sqlall inves来看一下表的结构),

此后可用manage.py runserver打开调试服务器,进入:http://127.0.0.1:8000/admin/     去填一些测试数据。然后访问:http://127.0.0.1:8000/1/      (其中1是问卷的id)

现在回到正题,接着为了部署继续修改settings.py主要改动是把原来开发过程中用的相对路径改成绝对路径。

主要有:

MEDIA_ROOT = ‘c:/django/wenjuan’

STATIC_PATH = ‘c:/django/wenjuan/media’

TEMPLATE_DIRS = (

        ‘c:/django/wenjuan/templates’,

)

请注意斜杠的方向。

接下来可以去修改Apache的配置文件httpd.conf了。它应该在Apache安装目录的con里面找到。

配置可能涉及到的参数主要有:

Listen      (监听的端口号,前面也可以附上IP,默认就设成80吧)

ServerName      (访问的入口,仍然是IP+端口,比如162.168.1.10:80或者是其他的)

DocumentRoot     (Apache服务器的根,我把它设为"c:/django/")

然后就是需要添加的配置了:

首先检查LoadModule python_module modules/mod_python.so

如果没有就加上,位置挨着长得像的就行了

然后添加:(建议在配置文件最后,日后好找)

<Location "/">

    SetHandler python-program

    PythonPath "sys.path+[‘c:/django‘]"

    PythonHandler django.core.handlers.modpython    

    SetEnv DJANGO_SETTINGS_MODULE wenjuan.settings

    PythonInterpreter inves

    PythonDebug On

</Location>

注意如果是正式发布就把里面的PythonDebug 置为Off

然后再添加:

Alias /site_media c:/django/wenjuan/media

<Location "/site_media/">

       SetHandler None

</Location>

Alias /media c:/Django-0.95/django/contrib/admin/media     (注意对应你装的django)

<Location "/media/">

       SetHandler None

</Location>

<LocationMatch "(?i)\.(jpg|gif|png|txt|ico|pdf|css|jpeg)$">

       SetHandler None

</LocationMatch>

重启Apache,浏览 http://localhost/1/

说明:可以通过http://localhost/single/1 一次打开所有问题,上一个是一题一题跳的。

关于作者

孟繁永 administrator

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据