apache部署django

环境:win server 2003

版本:apache2.2   django1.3  python2.7 mod_wsgi.so

首先 安装apache2.2 python2.7 django1.3 

然后下载 mod_wsgi.so (网上很多文章都是mod_python,但只支持到python2.5,现在停止更新了,所以我直接就用mod_wsgi)

把mod_wsgi.so拷贝到 apache目录下的  modules 下。

打开 httpd.conf文件。

加入如下两行

LoadModule wsgi_module modules/mod_wsgi.so
Include "C:/Program Files/Apache Software Foundation/Apache2.2/www/test12/apache/apache_django_wsgi.conf"

第一行没什么可说的。

第二行 包含一个配置文件,是为了单独针对项目 配置一些目录等信息。

          其中www为apache的启动目录。

          test12 为我测试的项目名称。

          apache是我新建的存储conf文件的目录。

          在下面新建文件  apache_django_wsgi.conf,打开,打入代码。

WSGIScriptAlias / "C:/Program Files/Apache Software Foundation/Apache2.2/www/test12/apache/django.wsgi"

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/www/test12">
Allow from all
</Directory>

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/www/test12/templates">
Allow from all
</Directory>

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/www/test12/viewfun">
Allow from all
</Directory>

         其中第一行引入了django.wsgi,这个文件也是在上面新建的apache目录下创建,然后添加内容。

import os,sys
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'= 'test12.settings'
import django.core.handlers.wsgi
application 
= django.core.handlers.wsgi.WSGIHandler()

 

         上面代码需要修改的就是  settings这块,test12就是我放在网站下的项目文件夹名称。

打开DJANGO网站下,settings.py文件,再修改几处。

添加绝对路径的三处

 

MEDIA_ROOT = 'C:/Program Files/Apache Software Foundation/Apache2.2/www/test12'
STATIC_ROOT = 'C:/Program Files/Apache Software Foundation/Apache2.2/www/test12'

 

 

TEMPLATE_DIRS = (
                                    'C:/Program Files/Apache Software Foundation/Apache2.2/www/test12/templates',

                             )

这里可以用这个比较方便   os.path.join(os.path.dirname(__file__), 'Template').replace('\\','/')

还有一处需要注意,就是ROOT_URLCONF这个设置,urls前面得名称需要跟你发布的目录名称一致。比如我这个就是test12.

 ROOT_URLCONF = 'test12.urls'

 

 

别的基本就没什么了,把所有文件保存,重启apache.打开浏览器看看效果吧。

因为是业余时间弄,所以部署这个问题卡了我很多天才解决。最后发现大多问题都是路径的问题。部署的时候出错就多看apache的log,很有帮助。

 

posted on 2011-08-02 23:24  超级管理员  阅读(3528)  评论(0编辑  收藏  举报