ubuntu下nginx+uWSGI+Django搭建

以下安装的软件均为2012-5-6日下载的最新版

ubuntu下安装nginx

1.安装zlib : sudo apt-get install zlib1g-dev

2.安装pcre: sudo apt-get install libpcre3 libpcre3-dev

3.安装openssl :

sudo apt-get install openssl

sudo apt-get install libssl-dev

sudo apt-get install libssl0.9.8

上述步骤完成后,可以开始安装Nginx.

4.安装uwsgi

在uwsgi的解压目录,sudo make

如果出现错误:Python.h:没有那个文件或目录编译中断。

则需要sudo apt-get install python-dev


5.安装django.

6.用django创建一个项目:

django-admin.py startproject mysite 

7.用uwsgi hold django


    uwsgi --socket 127.0.0.1:3031 --chdir <path to your project directory> --pp .. -w django_wsgi

8.在第六步创建的mysite下面可以看到如下目录:
manage.py  mysite 
mysite中又包括:__init__.py settings.py urls.py wsgi.py
在manage.py 这一层创建文件django.xml
内容如下:
<uwsgi> 
<socket>127.0.0.1:9090</socket>
<chdir>path to mysite project</chdir>
<pythonpath>..</pythonpath>
<module>django_wsgi</module>
</uwsgi>
在manage.py同一文件层次,也即settings.py的上一文件层次下创建文件 wsgi_app.py
这个wsgi_app的名称和nginx中要配置的UWSGI_SCRIPT一致。
内容如下:
#! /usr/bin/env python
# coding: utf-8
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
#mysite就是工程的名字,根据工程名字不一样,上面赋值右边内容也不一样,总之就是到settings.py的上一级目录+'.settings'

配置nginx:
localhost /{
 uwsgi_pass 127.0.0.1:9090#要和django.xml中socket一致
 uwsgi_param UWSGI_CHDIR  PATH TO mysite project #和django.xml中chdir一致
 uwsgi_param UWSGI_SCRIPT wsgi_app #和在mysite工程下创建的python文件名一致
 include uwsgi_params
}

启动uwsgi:
./uwsgi --socket 127.0.0.1:9090 --chdir path to mysite --pp .. -w django_wsgi
或者将uwsgi加入系统变量中
修改/etc/profile  
UWSGI_HOME = THE PATH YOUR UWSGI INSTALLED
PATH = $UWSGI_HOME:$PATH



windows下:

需要安装setuptools:http://peak.telecommunity.com/dist/ez_setup.py

mysqldb:http://blog.chinaunix.net/uid-8487640-id-3183185.html

在windows下安装mysqldb会出现一个错误:

   serverKey = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, options['registry_ke
'])
indowsError: [Error 2]

解决方法:

http://home.51.com/hj3389561/diary/item/10051715.html

http://xiaozhen1900.blog.163.com/blog/static/174173257201271210114824/


Django使用中出现的一些初级问题:

1.models中的对象名称和数据库中的对象名称的关系

  数据库的名字应该是 model{python工程中建立的包名?}_model{models.py中的class名字?}.


NoReverseMatch at /admin/
Reverse for 'logout' with arguments '()' and keyword arguments '{}' not found.
解决方案:

(r'^admin/(.*)', include(admin.site.urls)),

Should be

(r'^admin/', include(admin.site.urls)),




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值