Django 部署

话说这个部署挺折腾人的,先开始使用 mod_python ,貌似版本一直有问题,没成功过,以后再试。

使用 mod_wsgi 成功,记录如下:

1、下载 mod_wsgi:

http://code.google.com/p/modwsgi/downloads/detail?name=mod_wsgi-3.4.tar.gz

2、解压安装:

tar zxvf mod_wsgi-3.4.tar.gz && cd mod_wsgi-3.4 && ./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/bin/python && make && make install

./configure 的时候需要指定 apxs,否则要将 apxs 所在目录加入到 PATH 环境变量中亦可:export PATH=$PATH:/usr/local/apache2/bin/

注意,Python版本好像要求2.7.x ,我用2.6的用问题,可以升级到2.7.

http://my.oschina.net/HankCN/blog/137539

3、如果上面成功,则会提示已生成 mod_wsgi.so 扩展文件,并且提示要你  chmod 755 /usr/local/apache2/modules/mod_wsgi.so,按着做好了。

上面的三步都很简单,就和安装 php 一样。

4、在 httpd.conf 文件中加上:

LoadModule wsgi_module  modules/mod_wsgi.so 

和:

WSGIScriptAlias /sailing /usr/local/apache2/htdocs/sailing/sailing/wsgi.py
<Directory /usr/local/apache2/htdocs/sailing/>
    Order Deny,Allow
    Allow from all
</Directory>

5、在 htdocs 目录下新建 Django 项目,django-admin.py startproject sailing,然后在项目里再新建应用 django-admin.py startapp app1,写一个简单的视图方法 hello,配置好 urls.py,确定通过Django的 runserver 访问 127.0.0.1/sailing/hello 无误。(或者把已有的 Django 项目复制到 htdocs/ 目录下。)

6、修改项目目录下的 wsgi.py 文件,Django 已经为我们配置好了,只不过要加上一句:

import sys
sys.path.append('/usr/local/apache2/htdocs/sailing/')

否则请求会报 500 错误,apache 的 error 日志里会提示:

ImportError: Could not import settings 'sailing.settings'

7、重启 apache 服务,在浏览器中浏览。

8、默认如果修改了 python 文件,需要重启 apache 才能刷新结果,调试起来非常麻烦。可以设置 httpd.conf 文件中:

MaxRequestsPerChild 1

即可强制每次请求都重新载入所有代码。(但不要在产品服务器上使用)

 

 

 

 

 

 

 

 

posted @ 2014-03-14 14:43  轻典  阅读(3459)  评论(2编辑  收藏  举报