linux 下安装 python ngix 项目发布流程
#1.安装python3.7所需要的依赖包
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 libffi-devel
#3下载python3.7的源码
3 wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz
#4解压编译安装python3.7
4 tar -xJvf Python-3.7.0.tar.xz
#5.cd 到Python-3.7.0文件夹
5 cd Python-3.7.0
# 6、用./方法执行configure,并指定安装到usr目录下
6 ./configure --prefix=/usr/local/python3 --enable-shared
#7.开始编译安装
7 make && make install
# 8、配置环境变量, 创建软链接
8 ln -s /usr/local/python3/bin/python3 /usr/bin/python3
9 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
#10将编译目录下的libpython3.7m.so.1.0文件复制到
10 cp /root/Python-3.7.0/libpython3.7m.so.1.0 /usr/lib64/libpython3.7m.so.1.0
#安装虚拟环境
11 pip3 install virtualenv
#创建软连接
12 ln -s /usr/local/python3/bin/virtualenv /usr/bin/virtualenv
#创建项目和虚拟环境所需要的文件夹
13 mkdir -p /data/env
14 mkdir -p /data/wwwroot
#进入文件夹
15 cd /data/env
#创建虚拟环境
16 virtualenv --python=/usr/bin/python3 py3_dj2
#进入虚拟环境所在的目录
17 cd /data/env/py3_dj2/bin/
#启动虚拟环境
18 source activate
#安装项目所需要的python报
19 pip3 install django
20 pip3 install uwsgi
#创建软连接
21 ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi
#退出虚拟环境
22 deactivate
#cd 到根目录
23 cd ~
#下载nginx的源码
24 wget http://nginx.org/download/nginx-1.13.7.tar.gz
#解压
25 tar -zxvf nginx-1.13.7.tar.gz
#进入nginx-1.13.7文件中
26 cd nginx-1.13.7
27 ./configure
28 make && make install
#nginx一般默认安装好的路径为/usr/local/nginx 在/usr/local/nginx/conf/中先备份一下nginx.conf文件,以防意外。
29 cd /usr/local/nginx/conf/
30 cp nginx.conf nginx.conf.bak
#进入到下面目录中修改nginx.conf中的配置,
31 cd /usr/local/nginx/conf/
把原有的内容全部删掉改成下面的:
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name www.donghaiming.cn; #改为自己的域名,没域名修改为127.0.0.1:80
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000; #端口要和uwsgi里配置的一样
uwsgi_param UWSGI_SCRIPT library.wsgi; #wsgi.py所在的目录名+.wsgi
uwsgi_param UWSGI_CHDIR /data/wwwroot/library/; #项目路径
}
location /static/ {
alias /data/wwwroot/library/static/; #静态资源路径
}
}
}
#把自己的项目放到 cd /data/wwwroot/目录下
在目录中添加 和项目名字相同的 项目.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<uwsgi>
<socket>127.0.0.1:8000</socket> <!-- 内部端口,自定义 -->
<chdir>/data/wwwroot/library/</chdir> <!-- 项目路径 -->
<module>library.wsgi</module> <!-- wsgi.py所在目录名-->
<processes>4</processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>
#进入虚拟环境所在的目录
34 cd /data/env/py3_dj2/bin/
#进入虚拟环境
35 source activate
#进入项目所在的目录
36 cd /data/wwwroot/library/
#uwsgi 解析项目中的配置文件
37 uwsgi -x library.xml
#进入nginx所在的目录
38 cd /usr/local/nginx/sbin/
#启动nginx,如果没有启动过 ./nginx就可以
39 ./nginx -s reload
#测试
40 curl 127.0.0.1:80
#迁移静态文件
41 cd /data/wwwroot/library/
42 python3 manage.py collectstatic
#查看操作步骤
43 history