环境CentOS6.2,Django1.6,uwsgi1.9.20,nginx1.4.4
1.yum install mysql mysql-devel mysql-server
2.python
3.pipCentOS6.2自带python2.6.6,系统自带的python没有安装setuptools组件在安装python第三方模块的时候基本都是使用python setup.py install命令,所以需要安装setuptools> wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py > python ez_setup.py --user
pip是python的包管理工具。
> wget https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz --no-check-certificate
>chmod +x pip-1.3.1.tar.gz
>tar xzvf pip-1.3.1.tar.gz
>cd pip-1.3.1
>python setup.py install
#安装完后,pip可执行文件位于/root/.local/bin中,ln建立连接到/bin中
4.yum install python-devel
5.pip install MySQL-python
6.pip install django
此时环境搭建完毕。
我的项目是/root/src/mysite
--mysite
--settings等
--test1
--templates
--html文件
--static
--css--images
部署
安装uwsgi
WebServerGatewayInterface
$ export LDFLAGS="-Xlinker --no-as-needed" $ pip install uwsgi
编写django_wsgi.py文件,将其放在与文件manage.py同一个目录下。
#!/usr/bin/env python # coding: utf-8 import os import sys reload(sys) sys.setdefaultencoding('utf8') os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") from django.core.handlers.wsgi import WSGIHandler application = WSGIHandler()
执行
uwsgi --http :8000 --chdir /root/src/mysite --module django_wsgi
就可以通过ip:8000/xxx来访问了
#此时没有引入静态文件,能访问说明uwsgi没有问题
安装nginx
去nginx.org官网上下载
nginx-1.4.4.tar.gz
解压
yum install glib2-devel openssl-devel pcre-devel bzip2-devel gzip-devel
./configure
make install
然后
cp /usr/local/nginx/sbin/nginx /usr/bin
启动
nginx
#默认端口是80
#直接访问,显示的是nginx的欢迎界面
停止
nginx -s stop
重启
nginx -s reload
配置nginx和django
在mysite目录下建立wsgi.ini文件
内容
[uwsgi]
socket= 127.0.0.1:8001
chdir= /root/src/mysite
module= django_wsgi
buffer-size = 32768
修改nginx配置文件
server部分修改成下面的样子
server {
listen 8000;
server_name 127.0.0.1;
autoindex on;
charset UTF-8;
access_log /root/src/logs/access.log;
error_log /root/src/logs/error.log;
client_max_body_size 75M;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8001;
uwsgi_read_timeout 2;
}
location /static {
expires 30d;
autoindex on;
add_header Cache-Control provate;
alias /root/src/mysite/test1/static;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
*在nginx.conf文件第一行,加上
user root
#本来是默认用户,权限不够会造成静态文件无法引用
配置完毕。
先启动uwsgi
进入/root/src/mysite目录
执行uwsgi -wsgi.ini
然后用另一个控制台,执行nginx启动
此时访问ip:8000/url就能访问了