前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器

20.多端项目上线部署(2)部署后端项目NewCenter到腾讯云服务器

作者头像
玩蛇的胖纸
发布2020-07-07 09:45:23
3.8K0
发布2020-07-07 09:45:23
举报

1.项目准备

1.在settings.py中

代码语言:javascript
复制
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
# STATICFILES_DIRS = (
#     os.path.join(BASE_DIR, 'static'),
# )
代码语言:javascript
复制
DEBUG = False

ALLOWED_HOSTS = ["*"]

2.生成requirements.txt

代码语言:javascript
复制
pip freeze >requirements.txt

 3.将项目打包成.zip包

2.上传项目包

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

 3.在云服务器解压zip包

1.使用Xshell连接服务器

clear清屏

 2.解压zip包

代码语言:javascript
复制
sudo -i
cd /home/ubuntu
ls
unzip NewCenter.zip

 4.创建虚拟环境

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

代码语言:javascript
复制
python3 -V
#当前环境下python3是python3.6.8

2.创建虚拟环境

 在ubuntu目录下做这些操作

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

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

代码语言:javascript
复制
ls
cd NewCenter
pip3 install -r requirements.txt

5.测试并收集静态文件

1.运行项目:

代码语言:javascript
复制
python manage.py runserver 0.0.0.0:8000

bug:

报错了

原因:

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

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

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

解决:

Ctrl+C,退出。

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

 然后再重新启动项目:

代码语言:javascript
复制
cd /home/ubuntu
cd NewCenter
python manage.py runserver 0.0.0.0:8000

2.在安全组打开8000端口

3.浏览器访问:

代码语言:javascript
复制
http://公网IP:8000/xadmin/

浏览器效果图:

 4.退出运行状态:

代码语言:javascript
复制
Ctrl键+C键

5.收集静态文件:

代码语言:javascript
复制
python manage.py collectstatic

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

6.安装uwsgi

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

代码语言:javascript
复制
#退出虚拟环境
deactivate
cd ..
apt install python3-pip
y
apt-get install -y python3-dev
pip3 install uwsgi

2.使用uwsgi启动项目

代码语言:javascript
复制
uwsgi --chdir /home/ubuntu/NewCenter --home /home/ubuntu/env36 --http :8000 --module NewCenter.wsgi

 浏览器访问:

代码语言:javascript
复制
http://公网IP:8000/xadmin/

3.退出运行状态

代码语言:javascript
复制
Ctrl键+C键

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

1.创建ini文件

代码语言:javascript
复制
cd NewCenter/
mkdir newcenter_uwsgi
cd newcenter_uwsgi/
vim newcenter.ini

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

代码语言:javascript
复制
[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文件启动项目命令

代码语言:javascript
复制
uwsgi --ini /home/ubuntu/NewCenter/newcenter_uwsgi/newcenter.ini

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

7.安装配置Nginx

1.安装Nginx

代码语言:javascript
复制
cd /home/ubuntu/
apt-get install nginx
y

2.配置Nginx

1.删除default:

代码语言:javascript
复制
#防止错误,先把default文件给删除了
cd /etc/nginx/sites-available/
rm default 
ls
cd /etc/nginx/sites-enabled
ls
rm default 
ls

2.新建配置文件:

代码语言:javascript
复制
cd /etc/nginx/sites-available/
vim newcenter.conf

3.编辑内容:

代码语言:javascript
复制
i #进入编辑状态

内容

代码语言:javascript
复制
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;
  }
}

保存退出:

代码语言:javascript
复制
Esc键+输入:wq+回车 #保存退出

4.建立软链接

代码语言:javascript
复制
cd /etc/nginx/
ln -s /etc/nginx/sites-available/newcenter.conf /etc/nginx/sites-enabled/newcenter.conf
ls sites-enabled/
代码语言:javascript
复制
nginx -t #查看Nginx 运行情况

service nginx restart #重启Nginx
 
注意 如果报错:
代码语言:javascript
复制
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.

查看端口8000是否占用:

代码语言:javascript
复制
netstat -apn|grep :8000

查看与uwsgi相关进程

代码语言:javascript
复制
ps -aux|grep uwsgi

停止uwsgi

代码语言:javascript
复制
sudo pkill -f uwsgi -9

 5.通过nginx反向代理访问

1.解决权限问题:

代码语言:javascript
复制
chmod -R 777 /home/ubuntu

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

代码语言:javascript
复制
uwsgi --ini /home/ubuntu/NewCenter/newcenter_uwsgi/newcenter.ini

3.重启nginx

代码语言:javascript
复制
nginx -t #查看Nginx 运行情况

service nginx restart #重启Nginx

浏览器访问:

代码语言:javascript
复制
http://公网IP:8000/xadmin/

效果图:

后端项目NewCenter部署成功!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.项目准备
    • 1.在settings.py中
      • 2.生成requirements.txt
        •  3.将项目打包成.zip包
        • 2.上传项目包
          • 1.使用FileZilla连接腾讯云服务器,并上传NewCenter.zip包
          •  3.在云服务器解压zip包
            • 1.使用Xshell连接服务器
              •  2.解压zip包
              •  4.创建虚拟环境
                • 1.查看当前系统下python3的版本
                  • 2.创建虚拟环境
                    • 3.在虚拟环境中安装依赖库
                    • 5.测试并收集静态文件
                      • 1.运行项目:
                        • bug:
                        • 原因:
                        • 解决:
                      • 2.在安全组打开8000端口
                        • 3.浏览器访问:
                          •  4.退出运行状态:
                            • 5.收集静态文件:
                            • 6.安装uwsgi
                              • 1.安装uwsgi到真实(非虚拟环境)环境下
                                • 2.使用uwsgi启动项目
                                  • 3.退出运行状态
                                    • 4.通过uwsgi通过ini执行运行项目
                                      • 1.创建ini文件
                                      • 2.通过执行ini文件启动项目命令
                                  • 7.安装配置Nginx
                                    • 1.安装Nginx
                                      • 2.配置Nginx
                                        • 1.删除default:
                                        • 2.新建配置文件:
                                        • 3.编辑内容:
                                        • 4.建立软链接
                                        •  5.通过nginx反向代理访问
                                    相关产品与服务
                                    数据库
                                    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档