centos6.8_64部署django项目
一、用SecureCRT登录云服务器,并输入命令控制云服务器
二、安装python并升级版本(系统默认的是python2.6)
1、安装python2.7
yum install -y update # 更新内置程序
yum groupinstall -y development # 安装所需的development tools
yum install -y zlib-dev openssl-devel sqlite-devel bzip2-devel # 安装附加包
yum install xz-libs # 安装XZ解压库(可选)
wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz # 下载源码包
# 解压源码包,分为两步
xz -d Python-2.7.6.tar.xz
tar -xvf Python-2.7.6.tar
# 编译与安装,先进入源码目录
cd Python-2.7.6
./configure --prefix=/usr/local
make && make install
2、由于系统默认的是python2.6,需要切换到python2.7,修改软连接
执行以下命令,对Python2.6进行备份,然后为Python2.7创建软链接
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
3、对yum的配置进行修改,如果不进行这一步操作的话,执行yum命令将会提示你Python的版本不对
编辑/usr/bin/yum,将第一行的#!/usr/bin/python修改成#!/usr/bin/python2.6
如果你用命令不熟悉,可以用WinSCP登录云服务器,在usr/bin文件夹下找到yun文件,将它拖到桌面,然后打开编辑,编辑完保存,又将它拖到原来的地方覆盖原文件
4、安装setuptools
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxf setuptools-0.6c11.tar.gz
cd setuptools-0.6c11/
python setup.py build
python setup.py install
5、安装pip
wget https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz --no-check-certificate
tar -xzvf pip-1.3.1.tar.gz
cd pip-1.3.1
python setup.py install
6、安装需要的django库及第三方库
1)安装django
pip install django
2)安装Pillow5.0(需要特别注意)
安装依懒库:yum install libjpeg-turbo-devel
下载源码,运行setup.py,或者pip install Pillow
3)安装M2Crypto
1.升级swig版本,因为旧版缺少-builtin选项
先安装PCRE
yum search pcre
yum install pcre-devel.x86_64(根据搜索结果自己选)
安装swing
wget -O swig-3.0.7.tar.gz http://prdownloads.sourceforge.net/swig/swig-3.0.7.tar.gz
tar zxf swig-3.0.7.tar.gz
cd swig-3.0.7
. /configure --prefix=/usr
make && make install
2.安装typing: pip install typing
3.去下载https://pypi.python.org/官网下载最新的M2Crypto(0.27.0或者0.29.0)源码,运行setup.py
7、用nginx和uwsgi部署
安装nginx:
wget http://nginx.org/download/nginx-1.5.6.tar.gz
tar zxf nginx-1.5.6.tar.gz
cd nginx-1.5.6
./configure --prefix=/usr/local/nginx-1.5.6
make && make install
安装uwsgi:
pip install uwsgi
uwsgi --version # 查看 uwsgi 版本
8、在/ect/目录下新建uwsgi9090.ini,添加如下配置:
[uwsgi]
socket = 127.0.0.1:9090 //在nginx保持一致
master = true //主进程
vhost = true //多站模式
no-site = true //多站模式时不设置入口模块和文件
workers = 2 //子进程数
reload-mercy = 10
vacuum = true //退出、重启时清理文件
max-requests = 1000
limit-as = 512
buffer-size = 30000
chdir=/root/mainblog //项目目录
pythonpath=/root/mainblog //项目路径
module=mainblog.wsgi //"."表示上一级,wsgi.py文件路径
9、找到nginx的安装目录(如:/usr/local/nginx-1.5.6/),打开conf/nginx.conf文件,修改server配置:
server {
listen 80;
server_name localhost;
location /static { #访问静态文件
autoindex on;
alias /root/mainblog/static;
}
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:9090; #必须和uwsgi中的设置一致
uwsgi_param UWSGI_SCRIPT mainblog.wsgi; #入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录
uwsgi_param UWSGI_CHDIR /mainblog; #项目根目录
index index.html index.htm;
client_max_body_size 35m;
}
}
10、若你的项目部署在root目录下,必须要修改它的权限以及他下面子目录的权限:
1)点击root,在弹出的菜单中选择属性,全勾选,修改为最高权限777;
2)chmod -R 777 项目目录(如:mainblog)
11、运行项目:
uwsgi --ini /etc/uwsgi9090.ini &/usr/local/nginx-1.5.6/sbin/nginx