宝塔部署Centos7+nginx+uwsgi+django(python3)环境配置
发表于 : | 「CC BY-NC-SA 4.0」 | 阅读 : 4032

本人系统 : Centos7.4 (虚拟机)
系统自带 : python2.7.5 (宝塔基于python2) # 可忽略
Nginx : Tengine2.2.2 #宝塔一键安装 * 可忽略

现在安装 Python3.6

  1. 自己去下载 https://www.anaconda.com/download/ #不知道是什么,自己百度
  2. 我下载的是 Anaconda3-5.0.1-Linux-x86_64.sh [目前最新] #官网有安装教程
  3. 我安装在系统根目录 /anaconda3 安装完后 Anaconda3 已经自带 python3.6.3 后面会更新最新
  4. 添加源 -> https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ #我连三方全部都添加了.

安装django

conda install django

[root@hawk ~]# python 
>>> import django
>>> django.VERSION   # 查看 django 版本
(1, 11, 8, 'final', 0)

安装uwsgi

conda install uwsgi

[root@hawk ~]# uwsgi --version    # 查看 uwsgi 版本
2.0.15

更新所有conda包

conda update --all

中途要输入 y 回车, 更新完成后
python 3.6.4 (目前最新)
django 2.0.1 (目前最新)
uwsgi 2.0.15 (目前最新)
这个时候建议,重启机器..


django 创建项目

cd /www/wwwroot
django-admin.py startproject testink

打开修改以下 /www/wwwroot/testink/testink/settings.py

ALLOWED_HOSTS = [] 改成 ALLOWED_HOSTS = ['*']

进入目录 /www/wwwroot/testink 运行以下

uwsgi --http :18883 --file testink/wsgi.py --static-map=/static=static

192.168.91.138 是我虚拟服务器ip, 浏览 192.168.91.138:18883

请输入图片描述

这个时候 django 和 uwsgi 已经 OK 了.
#以上所有操作,出现2次异常或者错误,我也不知道是什么,百度也找不到,我的解决方案是,重装,重启机器.

ModuleNotFoundError: No module named 'django' #有这个坑看下面链接

http://hawk.pub/x/icJ394Av.html

下面我们开始 Nginx
进入目录 /www/wwwroot/testink 下建 uwsgi.ini

[uwsgi]
socket = 127.0.0.1:18883
master = true         //主进程
vhost = true          //多站模式
no-site = true        //多站模式时不设置入口模块和文件
workers = 2           //子进程数
reload-mercy = 10     
vacuum = true         //退出、重启时清理文件
max-requests = 1000   
limit-as = 512
buffer-size = 30000

Nginx配置:

server {
        listen       80;
        server_name  t.v.hak.ink;
        
        location / {            
            include  uwsgi_params;
            uwsgi_pass  127.0.0.1:18883;              #必须和uwsgi中的设置一致
            uwsgi_param UWSGI_SCRIPT testink.wsgi;  #入口文件,即wsgi.py相对于项目根目录的位置,“.”相当于一层目录
            uwsgi_param UWSGI_CHDIR /www/wwwroot/testink;       #项目根目录
            index  index.html index.htm;
            client_max_body_size 35m;
        }
    }

Nginx和uwsgi的配置完成,重启机器.
运行uwsgi --ini /www/wwwroot/testink/uwsgi.ini OK了.

开机启动 vi /etc/rc.d/rc.local #开机启动脚本
加入 nohup /anaconda3/bin/uwsgi --ini /www/wwwroot/testink/uwsgi.ini >/dev/null 2>&1 &
重启试试.

TOP