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文件。
加入如下两行
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,打开,打入代码。
<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目录下创建,然后添加内容。
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文件,再修改几处。
添加绝对路径的三处
'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,很有帮助。