安装python3.6
在centos中,系统默认只提供python2.7的版本,但是项目我们使用的python3.6的版本。所有我们自己安装python3
安装Python3的方法
首先安装依赖包
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
然后根据自己需求下载不同版本的Python3,我下载的是Python3.6.2
wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz
然后解压压缩包,进入该目录,安装Python3
tar -xvJf Python-3.6.2.tar.xz
cd Python-3.6.2
./configure --prefix=/usr/local/python3
make && make install
最后创建软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
安装环境
- 安装virtualenv
yum install python-virtualenv
- 创建虚拟环境
virtualenv --no-site-packages env
cd env
# 激活虚拟环境
source bin/activate
部署
Nginx 安装
下载安装源
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
安装
yum install nginx
远程服务器nginx.conf地址:etc/nginx/nginx.conf
sever服务地址:etc/nginx/conf.d/default.conf/
Nginx不会自行启动。要运行Nginx
systemctl start nginx
启动nginx后,访问你的服务器端口,出现Welcome to nginx!代表启动成功
nginx的运行命令:
systemctl status nginx 查看nginx的状态
systemctl start/stop/enable/disable nginx 启动/关闭/设置开机启动/禁止开机启动
或者 service nginx start
nginx.conf配置
打开default.conf文件,将他自己配置的server注释掉,下面加上我们自己的server
server{
listen 80;
server_name 39.108.81.211
charset UTF-8;
access_log /var/log/nginx/myweb_access.log;
error_log /var/log/nginx/myweb_error.log;
client_max_body_size 75M;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
uwsgi_read_timeout 2;
}
location /static {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /lq/day06/static/;
}
}
这时我们访问我们放在static目录下的图片,如果出现图片,代表配置成功。
下面配置uwsgi.ini文件
[uwsgi]
# 守护进程
master = true
# 进程个数
processes = 4
# 虚拟环境
pythonhome = /lq/testenv
# 项目地址
chdir =/lq/day06
# 指定python版本
pythonpath = /usr/local/python3/bin/python3
# 指定uwsgi文件
module = day06.wsgi
# 和nginx通信地址:端口
socket = 127.0.0.1:8890
如果现实有master进程与worker 就代表配置成功,你就可以访问Django项目。这里面要特别注意pip的版本问题,你用的Python版本要与pip相对应,虚拟环境的版本也要与pip安装时保持一致,还有虚拟环境下的pip也要注意,因为阿里云服务器有自带的Python和pip与virtualenv,这个问题要特别注意!