1.项目准备
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
3.将项目打包成.zip包
2.上传项目包
1.使用FileZilla连接腾讯云服务器,并上传NewCenter.zip包
3.在云服务器解压zip包
1.使用Xshell连接服务器
clear清屏
2.解压zip包
sudo -i cd /home/ubuntu ls unzip NewCenter.zip
4.创建虚拟环境
1.查看当前系统下python3的版本
python3 -V #当前环境下python3是python3.6.8
2.创建虚拟环境
在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:
报错了
原因:
因为Mysql数据库新建的时候,所有大写字母都变成了小写,但是在项目配置文件中,数据库的名字中还是用的大写字母,而在ubuntu系统中,是区分大小写的,导致在连接数据库时报错。
这种情况下,在构建项目数据库的时候,就用了小写字母的情况下,是不会出现报错的。
所以只要将项目配置中与连接数据库相关的配置代码中的NewCenter,改成newcenter,即可。
解决:
Ctrl+C,退出。
ls cd NewCenter/ ls
vim settings.py # 英文输入环境下,敲 i 键,进入插入模式 #上下左右键移动光标,将连接数据库相关的代码中的‘NewCenter’修改为‘newcenter’ #英文输入环境下,敲Esc键,输入:wq 保存退出
然后再重新启动项目:
cd /home/ubuntu
cd NewCenter
python manage.py runserver 0.0.0.0:8000
2.在安全组打开8000端口
3.浏览器访问:
http://公网IP:8000/xadmin/
浏览器效果图:
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
浏览器访问:
http://公网IP:8000/xadmin/
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
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/
效果图:
后端项目NewCenter部署成功!