Linux|系统管理|WEB开发

关注Linux,系统管理,WEB开发以及开源世界

Ubuntu Lucid下将django部署到nginx上

| Comments

我说的都是偷懒的办法,也就是不重新编译nginx,也不从网络上下载最新的django版本,一切都是从Ubuntu的仓库中取。
所以版本如下:

nginx 0.7.65-1ubuntu 
python-django 1.1.1-2ubuntu1

假定创建的django项目在/home/websites/pysites下。 首先,配置Nginx。只需要改动/etc/nginx/sites-enable/default文件的location/区域,增加几行代码,类似如下:

location / {
    fastcgi_pass 127.0.0.1:8080;
    root   /home/websites/public_html/pysites;
    index  index.html index.htm;
    include fastcgi_params;
}

实际上就是增加了fastcgi_passroot两行。 然后以fastcgi模式启动django

$ cd /home/websites/public_html/pysites
$./manager.py runfcgi host=127.0.0.1 port=8080 --pythonpath=/home/websites/public_html/pysites

访问http://localhost/ 是不是看到了首页。 恩,一切看上去都很美好。 但是, 尝试访问 http://localhost/path 这里的URL地址试试? 你就会发现,无论访问怎样的路径,都仅仅只是显示首页,而不是你期望的出现其他页面试图。 这是一个BUG,详细的情况参考这个链接 #8874
解决的办法就是
1. 从这里(或者这里,需要翻/墙)下载补丁文件,放到/usr/share/pyshared/django/core/handlers/目录下,保存为wsgi.patch文件。
2. 为了保险起见,备份上述目录下的wsgi.py文件 ( cp wsgi.py wsgi_orig.py)
3. 应用补丁 patch -p0

Comments