在Centos7 部署Python3 + Django + Nginx + Uwsgi

1.更新Python的版本

 根据你项目所用的Python版本更新Python ,如果你的项目运行在Python2.x那就不用更新,因为Centos7自带Python2.7.因为我的项目运行在Python3.6所以我更新了Centos自带的Python.

  •   wget  https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz    #下载python3.6            
  •   xz -d Python-3.6.1.tar.xz     
  •   tar xvf Python-3.6.1.tar      #解压
  •    mkdir /usr/local/python3    #创建目
  •    编译并安装
  •   cd Python-3.6.1   #进入源码文件目
  •   sudo ./configure --prefix=/usr/local/python3 --enable-optimizations
  •   sudo make
  •   cd /usr/bin
  •   mv python python.bak
  •   sudo ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
  •   python -V  #查看版本是否替换

2.安装lnmp

  wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp

3.安装uwsgi

  •    python -m venv djangovenv   #python 创建Python虚拟环境(djangovenv为名称)
  •    在django 项目目录下即和manage.py 同级目录下新建uwsgi.ini
  •    在刚刚新建的uwsgi.ini里添加内容:
  • #添加配置选择
    [uwsgi]
    #使用HTTP访问的端口号, 使用这个端口号是直接访问了uWSGI, 绕过了Nginx
    #http = :8996
    #配置和nginx连接的socket连接
    socket=127.0.0.1:8000
    #配置项目路径,项目的所在目录
    chdir=/home/wwwroot/mysite
    #配置wsgi接口模块文件路径
    wsgi-file=mysite/wsgi.py
    #配置启动的进程数
    processes=4
    #配置每个进程的线程数
    threads=2
    #配置启动管理主进程
    master=True
    #配置存放主进程的进程号文件
    pidfile=uwsgi.pid
    #配置dump日志记录
    daemonize=uwsgi.log

  • 运行uwsgi uwsgi.ini
  • 找到nginx.conf文件在最外层{}里面添加如下内容
  • server {
    listen 8996; #暴露给外部访问的端口
    server_name 39.108.66.15;
    charset utf-8;
    location / {
    include uwsgi_params;
    uwsgi_pass 127.0.0.1:8000; #外部访问8996就转发到内部8997
    }
    location /static/ {
    alias /home/wwwroot/mysite/ashton/static/; #项目静态路径设置
    }
    }

  • 重启nginx   

3.关于admin样式丢失

  • 在settings.py下配置
  •  STATIC_ROOT = '/home/wwwroot/mysite/ashton/static'
  • 然后执行python manage.py collectstatic

 

一个人光有知识是远不够的,知识是一个量的积累.可以在拥有知识的前提下,掌握一门技术
原文地址:https://www.cnblogs.com/ashton/p/9736043.html