20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器 1.项目准备 2.上传项目包  3.在云服务器解压zip包  4.创建虚拟环境 5.测试并收集静态文件 6.安装uwsgi 7.安装配置Nginx

1.在settings.py中

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# STATICFILES_DIRS = (
#     os.path.join(BASE_DIR, 'static'),
# )
DEBUG = False

ALLOWED_HOSTS = ["*"]

2.生成requirements.txt

pip freeze >requirements.txt

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

 3.将项目打包成.zip包

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

2.上传项目包

1.使用FileZilla连接腾讯云服务器,并上传NewCenter.zip包

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

 3.在云服务器解压zip包

1.使用Xshell连接服务器

clear清屏

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

 2.解压zip包

sudo -i
cd /home/ubuntu
ls
unzip NewCenter.zip

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

 4.创建虚拟环境

1.查看当前系统下python3的版本

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

python3 -V
#当前环境下python3是python3.6.8

2.创建虚拟环境

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

 在ubuntu目录下做这些操作

#安装虚拟环境
apt-get install python3-venv
y
#在当前目录下,创建一个python3.6的虚拟环境,取名为env36
python3 -m venv env36
. env36/bin/activate
#进入虚拟环境
#退出虚拟环境 deactivate

3.在虚拟环境中安装依赖库

ls
cd NewCenter
pip3 install -r requirements.txt

5.测试并收集静态文件

1.运行项目:

python manage.py runserver 0.0.0.0:8000

bug:

报错了

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

原因:

因为Mysql数据库新建的时候,所有大写字母都变成了小写,但是在项目配置文件中,数据库的名字中还是用的大写字母,而在ubuntu系统中,是区分大小写的,导致在连接数据库时报错。

这种情况下,在构建项目数据库的时候,就用了小写字母的情况下,是不会出现报错的。

所以只要将项目配置中与连接数据库相关的配置代码中的NewCenter,改成newcenter,即可。

解决:

Ctrl+C,退出。

ls
cd NewCenter/
ls

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

vim settings.py
# 英文输入环境下,敲 i 键,进入插入模式
#上下左右键移动光标,将连接数据库相关的代码中的‘NewCenter’修改为‘newcenter’
#英文输入环境下,敲Esc键,输入:wq 保存退出

 然后再重新启动项目:

cd /home/ubuntu
cd NewCenter
python manage.py runserver 0.0.0.0:8000

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

2.在安全组打开8000端口

3.浏览器访问:

http://公网IP:8000/xadmin/

浏览器效果图:

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

 4.退出运行状态:

Ctrl键+C键

5.收集静态文件:

python manage.py collectstatic

注意,虽然收集了静态文件,但是这个时候,就算重启项目,从浏览器访问,依然是没有样式的。

6.安装uwsgi

1.安装uwsgi到真实(非虚拟环境)环境下

#退出虚拟环境
deactivate
cd ..
apt install python3-pip
y
apt-get install -y python3-dev
pip3 install uwsgi

2.使用uwsgi启动项目

uwsgi --chdir /home/ubuntu/NewCenter --home /home/ubuntu/env36 --http :8000 --module NewCenter.wsgi

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

 浏览器访问:

http://公网IP:8000/xadmin/

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

3.退出运行状态

Ctrl键+C键

4.通过uwsgi通过ini执行运行项目

1.创建ini文件

cd NewCenter/
mkdir newcenter_uwsgi
cd newcenter_uwsgi/
vim newcenter.ini

在英文输入下点击i键进入输入状态,输入:

[uwsgi]
#项目目录
chdir=/home/ubuntu/NewCenter
#wsgi目录
module=NewCenter.wsgi:application
#虚拟环境
home=/home/ubuntu/env36
master=true
processes=1
socket = 0.0.0.0:9000
vacuum = True
daemonize=yes

 点击【Esc】键,输入:wq,保存退出

2.通过执行ini文件启动项目命令

uwsgi --ini /home/ubuntu/NewCenter/newcenter_uwsgi/newcenter.ini

注意:这里所谓的启动,通过浏览器是访问不到的。

7.安装配置Nginx

1.安装Nginx

cd /home/ubuntu/
apt-get install nginx
y

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

2.配置Nginx

1.删除default:

#防止错误,先把default文件给删除了
cd /etc/nginx/sites-available/
rm default 
ls
cd /etc/nginx/sites-enabled
ls
rm default 
ls

2.新建配置文件:

cd /etc/nginx/sites-available/
vim newcenter.conf

3.编辑内容:

i #进入编辑状态

内容

server{
  listen 8000;
  server_name 公网IP;
  charset utf-8;

  client_max_body_size 75M;

  location /static {
    alias /home/ubuntu/NewCenter/static;
  }
  location /media {
    alias /home/ubuntu/NewCenter/media;
  }

  location / {
    uwsgi_pass 127.0.0.1:9000;
    include /etc/nginx/uwsgi_params;
  }
}

保存退出:

Esc键+输入:wq+回车 #保存退出

4.建立软链接

cd /etc/nginx/
ln -s /etc/nginx/sites-available/newcenter.conf /etc/nginx/sites-enabled/newcenter.conf
ls sites-enabled/
nginx -t #查看Nginx 运行情况

service nginx restart #重启Nginx
 

注意 如果报错:

Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.

查看端口8000是否占用:

netstat -apn|grep :8000

查看与uwsgi相关进程

ps -aux|grep uwsgi

停止uwsgi

sudo pkill -f uwsgi -9

 5.通过nginx反向代理访问

1.解决权限问题:

chmod -R 777 /home/ubuntu

2.如果因为报错停止过uwsgi,则需要再启动一次

uwsgi --ini /home/ubuntu/NewCenter/newcenter_uwsgi/newcenter.ini

3.重启nginx

nginx -t #查看Nginx 运行情况

service nginx restart #重启Nginx

浏览器访问:

http://公网IP:8000/xadmin/

效果图:

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器
1.项目准备
2.上传项目包
 3.在云服务器解压zip包
 4.创建虚拟环境
5.测试并收集静态文件
6.安装uwsgi
7.安装配置Nginx

后端项目NewCenter部署成功!