django项目、vue项目部署云服务器
上线架构图

服务器购买与远程连接
服务器可以在阿里云控制台首页 (aliyun.com)、登录 - 腾讯云 (tencent.com)购买。
这里我选择购买阿里云的云服务器ECS,购买时按自己需求,镜像这里选择CentOS 7.9

购买完成后,会拿到一个公网ip

选择远程连接工具,有很多种,Xshell、FinalShell等。
这里选择FinalShell,下载:FinalShell (hostbuf.com)
打开,连接。



连接的密码如果不知道或忘记了

安装git
安装git可以方便我们从直接从远程仓库拉取项目,当然,也可以不安装。
安装git
yum install git -y
创建文件夹放项目
mkdir /home/project
cd /home/project
克隆
git clone https://gitee.com/....
安装mysql
包含了很多开发的工具
yum -y groupinstall "Development tools"
各种依赖
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel
1.前往用户根目录
cd ~
2.下载mysql57
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
3.安装mysql57
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum install mysql-community-server --nogpgcheck
4.启动mysql57并查看启动状态
systemctl start mysqld.service
systemctl status mysqld.service
5.查看默认密码并登录
grep "password" /var/log/mysqld.log

mysql -uroot -p
6.修改密码(密码强度有要求,需要大小写字母、数字、符号)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Qq332525..';
安装redis(源码安装)
1.前往用户根目录
cd ~
2.下载redis-5.0.5(源码包)
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
3.解压安装包
tar -xf redis-5.0.5.tar.gz
4.进入目标文件
cd redis-5.0.5
5.编译环境
make
6.复制环境到指定路径完成安装
cp -r /root/redis-5.0.5 /usr/local/redis
7.配置redis可以后台启动:修改下方内容
vim /usr/local/redis/redis.conf
添加:
daemonize yes
8.建立软连接(环境变量)
ln -s /usr/local/redis/src/redis-server /usr/bin/redis-server
ln -s /usr/local/redis/src/redis-cli /usr/bin/redis-cli
9.后台运行redis
cd /usr/local/redis
redis-server ./redis.conf &
10.测试redis环境
redis-cli
# 退出
exit
11.如果想要关闭redis服务
# 方式一
客户端连进去,敲 shutdown
# 方式二
pkill -f redis -9
安装python3.8(源码安装)
阿里云的centos默认装了python3.6和2.7,如果没有硬性要求,可以直接跳过安装python3.8。
各种依赖
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel zlib* libffi-devel -y
1.前往用户根目录
cd ~
2.下载Python3.8.6
wget https://registry.npmmirror.com/-/binary/python/3.8.6/Python-3.8.6.tgz
3.解压安装包
tar -xf Python-3.8.6.tgz
4.进入目标文件
cd Python-3.8.6
5.把python3.8.6 编译安装到/usr/local/python38路径下
./configure --prefix=/usr/local/python38
6.编译并安装,如果报错,说明缺开头的哪些依赖
make && make install
7.建立软连接(环境变量)
ln -s /usr/local/python38/bin/python3 /usr/bin/python3.8
ln -s /usr/local/python38/bin/pip3 /usr/bin/pip3.8
目前云服务器各版本python环境
python pip 2.7版本的命令
python3 pip3 3.6版本的命令
python3.8 pip3.8 3.8版本的命令
安装uwsgi
uwsgi是符合wsgi协议的web服务器,使用c写的性能高,上线要使用uwsgi。
安装uwsgi,注意用你后面要用的python版本安装
pip3.8 install uwsgi
建立软连接
ln -s /usr/local/python38/bin/uwsgi /usr/bin/uwsgi
安装虚拟环境
1.安装虚拟环境
pip3.8 install virtualenv
更新pip
python3.8 -m pip install --upgrade pip
python3.8 -m pip install --upgrade setuptools
pip3.8 install pbr
pip3.8 install virtualenvwrapper
2.建立虚拟环境软连接(环境变量)
ln -s /usr/local/python38/bin/virtualenv /usr/bin/virtualenv
3.配置虚拟环境:
vim ~/.bash_profile
填入下方内容,注意python版本用的是哪个
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.8
source /usr/local/python38/bin/virtualenvwrapper.sh
4.更新配置文件内容
source ~/.bash_profile
5.创建虚拟环境
mkvirtualenv -p python3.8 xx
退出
deactivate
安装nginx(源码安装)
1.前往用户根目录
cd ~
2.下载nginx1.13.7
wget http://nginx.org/download/nginx-1.13.7.tar.gz
3.解压安装包
tar -xf nginx-1.13.7.tar.gz
4.进入目标文件
cd nginx-1.13.7
5.配置安装路径:/usr/local/nginx
./configure --prefix=/usr/local/nginx
6.编译并安装
make && make install
7.建立软连接
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
8.删除安装包与文件
cd ~
rm -rf nginx-1.13.7
rm -rf nginx-1.13.7.tar.xz
9.测试Nginx环境,服务器运行nginx,本地访问服务器ip
# 启动
nginx
# 停止
nginx -s stop
这个命令查看nginx是否在运行着
netstat -nlp | grep 80
然后访问
服务器公网ip:80
如果无法访问,说明云服务器安全组中没有添加80端口

vue项目部署
1.修改前端向后端发ajax请求的地址,以前都是向127.0.0.1发送请求,现在可以改成服务器地址了
2.编译vue项目成html,css,js
npm run build
3.项目根路径下会生成dist文件夹(编译过后的文件),本地压缩成zip(不要压成rar)
4.在服务器安装软件
yum install lrzsz
5.云服务器敲 rz,选择dist.zip上传
6.安装解压软件,解压文件
yum install unzip
unzip dist.zip
7.移动解压后的dist.zip,并重命名
mv ~/dist /home/html
8.去到Nginx配置目录
cd /usr/local/nginx/conf
9.备份Nginx配置文件
mv nginx.conf nginx.conf.bak
10.打开配置文件,添加内容
vim nginx.conf
内容
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name 127.0.0.1; # 可以改为自己的域名
charset utf-8;
location / {
root /home/html; # html访问路径
index index.html; # html文件名称
try_files $uri $uri/ /index.html; # 解决单页面应用刷新404问题
}
}
}
11.重新加载配置文件(重启nginx)
nginx -s reload
12.访问服务器ip地址(不写端口默认访问80端口)
xx.xx.xx.xx
django项目部署
项目依赖安装
1.修改django的某些关于ip地址的配置(数据库等ip地址不用改,因为就是本地的ip地址,当在服务器上运行时,连接的就是服务器的数据库)
2.django项目生成所需依赖
pip freeze > requirements.txt
3.把django项目上传到服务器上,通过rz命令,或者git命令
# 这里我把项目放到这个目录下
/home/project/
4.创建线上项目虚拟环境
mkvirtualenv project
5.虚拟环境下也要装uwsgi
pip install uwsgi
6.cd到项目根路径下
/home/project/
7.安装依赖
pip install -r ./requirements.txt
8.如果出现报错,比如安装mysqlclient模块容易报错,那么我可以打开requirements.txt,将mysqlclient模块那一行注释掉(#)
9.最后单独安装mysqlclient
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum install mysql-devel
yum install python-devel
pip install mysqlclient
数据库配置
1.进入数据库
2.创建项目需要的数据库
create database project default charset=utf8;
3.设置权限账号密码:账号密码要与项目中配置的一致
grant all privileges on project.* to 'username'@'%' identified by 'password';
grant all privileges on project.* to 'username'@'localhost' identified by 'password';
flush privileges;
4.退出数据库
quit;
5.回到虚拟环境,到项目目录中
数据库迁移命令
python manage_pro.py makemigrations
python manage_pro.py migrate
6.录入数据
使用uwsgi启动django
1.项目目录下,新建uwsgi的配置文件
vim ./project.xml
添加
<uwsgi>
<socket>127.0.0.1:8000</socket> <!-- 内部端口,自定义 -->
<chdir>/home/project/</chdir> <!-- 项目路径 -->
<module>project.wsgi</module> <!-- project为wsgi.py所在目录名-->
<processes>4</processes> <!-- 进程数 -->
<daemonize>uwsgi.log</daemonize> <!-- 日志文件 -->
</uwsgi>
2.启动uwsgi
uwsgi -x ./luffyapi.xml
3.查看uwsgi进程
ps aux |grep uwsgi
4.配置nginx,把8080端口的动态请求转发给uwsgi里配置的8000端口
vim /usr/local/nginx/conf/nginx.conf
内容:
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name 127.0.0.1; # 可以改为自己的域名
charset utf-8;
location / {
root /home/html; # html访问路径
index index.html; # html文件名称
try_files $uri $uri/ /index.html; # 解决单页面应用刷新404问题
}
}
# 新增的server
server {
listen 8080;
server_name 127.0.0.1; # 可以改为自己的域名
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000; # 端口要和uwsgi里配置的一样
uwsgi_param UWSGI_SCRIPT project.wsgi; #wsgi.py所在的目录名+.wsgi
uwsgi_param UWSGI_CHDIR /home/project/; # 项目路径
}
}
}
5.重启nginx
nginx -s reload
6.这时候前端向服务器id:8080就等于向后端项目发送了请求。
后端样式处理
这时候访问后端的admin接口是没有样式的,还需要下列设置
1.编辑线上项目的配置文件
vim /home/project/../settings/pro.py
2.修改static配置,新增STATIC_ROOT、STATICFILES_DIRS
STATIC_URL = '/static/'
STATIC_ROOT = '/home/project/static'
STATICFILES_DIRS = (os.path.join(BASE_DIR, "../static"),)
3.项目目录下没有 static 文件夹需要新建
mkdir /home/project/static
4.完成静态文件迁移
python /home/project/manage_pro.py collectstatic
5.修改nginx配置
vim /usr/local/nginx/conf/nginx.conf
内容
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
server {
listen 80;
server_name 127.0.0.1; # 可以改为自己的域名
charset utf-8;
location / {
root /home/html; # html访问路径
index index.html; # html文件名称
try_files $uri $uri/ /index.html;
}
}
server {
listen 8080;
server_name 127.0.0.1; # 可以改为自己的域名
charset utf-8;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000; # 端口要和uwsgi里配置的一样
uwsgi_param UWSGI_SCRIPT project.wsgi;
uwsgi_param UWSGI_CHDIR /home/project/;
}
}
location /static {
alias /home/project/static;
}
}
6.重启nginx
nginx -s reload
django项目、vue项目部署云服务器的更多相关文章
- 部署Flask项目到腾讯云服务器CentOS7
部署Flask项目到腾讯云服务器CentOS7 安装git yum install git 安装依赖包 支持SSL传输协议 解压功能 C语言解析XML文档的 安装gdbm数据库 实现自动补全功能 sq ...
- springboot项目部署云服务器
Springboot项目部署云服务器 springboot项目部署云服务器还是挺简单的 首先你要有java运行环境,就是jdk的安装,如果还没有装没有参考安装:阿里云ECS建网站(建站)超详细全套完整 ...
- 后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件
后盾网lavarel视频项目---Vue项目使用vue-awesome-swiper轮播插件 一.总结 一句话总结: vue中的插件的使用和js插件的使用一样的简单,只是vue插件的引入过程有些不同 ...
- vue项目怎么搭建到云服务器上
链接1:https://blog.csdn.net/qq_37741554/article/details/87560823 linux下载安装node.js 链接2:https://blog.csd ...
- Tomcat+Nginx+Linux+Mysql部署豆瓣TOP250的项目到腾讯云服务器
写在前面 因为前面有写过一篇关于豆瓣的top250的电影的可视化展示项目,你可以移步http://blog.csdn.net/liuge36/article/details/78607955了解这个项 ...
- 【重学Node.js 第5篇】部署项目到腾讯云服务器
课程介绍看这里:https://www.cnblogs.com/zhangran/p/11963616.html 项目github地址:https://github.com/hellozhangran ...
- 使用maven构建项目时,SSM和springboot项目的打包与云服务器部署
下面讲讲如何打包SSM和springboot项目,并部署到云服务器上. 由于使用的IDE不同,有的使用eclipse,有的使用idea,所以如果在IDE中按照 maven clean 再 maven ...
- 部署SpringBoot项目jar包到云服务器
前言 做安卓开发也有三四年了,但是对网络这块什么http.tcp/ip之类的一直不理解.并且想自己做一些小项目练练手的时候,数据库直接存在apk里总不是滋味,所以这次站在安卓开发的角度尝试着做一做简单 ...
- 将Maven项目部署云服务器流程
1.数据库分离,存入项目: 2.将分离出的数据库导入云端服务器 将sql文件上传到服务器中 进去云端数据库输入命令:source 云服务器中sql文件地址 3.设置两种配置,修改匹配: 4.mave ...
随机推荐
- 20220303模拟赛题解and总结
目录 总结 A.不幸的7 B.选举 C. 差的绝对值之和 D. 路径通过 总结 初一第一 一般,最后一题没打好 不难发现,教练出水了,可能是信心赛 A.不幸的7 暴力,没有逻辑可言 #include& ...
- 实践torch.fx第一篇——基于Pytorch的模型优化量化神器
第一篇--什么是torch.fx 今天聊一下比较重要的torch.fx,也趁着这次机会把之前的torch.fx笔记整理下,笔记大概拆成三份,分别对应三篇: 什么是torch.fx 基于torch.fx ...
- python文件操作拓展与认识函数
目录 文件内光标的移动(了解即可) 前言 控制光标移动seek()方法 文件的修改 函数 语法结构 简单的使用 作业 答案 文件内光标的移动(了解即可) 前言 在文件的内置方法中,read()方法是可 ...
- st表 LCA
我当时知道ST表可以 \(O(1)\) 求 LCA 的时候是极为震惊的,可以在需要反复使用 LCA 的时候卡常使用. ST表!用于解决 RMQ问题 ST表 我可能写得不好,看专业的 怎么实现? 考虑把 ...
- 20212115 实验二 《python程序设计》实验报告
实验二 计算器设计 #20212115 2021-2022-2 <python程序设计> 实验报告二 课程: 课程:<Python程序设计>班级: 2121姓名: 朱时鸿学号: ...
- 2006NOIP普及组:明明的随机数
明明的随机数 时间限制:1000ms 内存限制:65536KB 题目描述: 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数 ...
- 浅谈Javascript单线程和事件循环
单线程 Javascript 是单线程的,意味着不会有其他线程来竞争.为什么是单线程呢? 假设 Javascript 是多线程的,有两个线程,分别对同一个元素进行操作: function change ...
- 深入C++04:模板编程
模板编程 函数模板 模板意义:对类型也进行参数化: 函数模板:是不编译的,因为类型不知道 模板的实例化:函数调用点进行实例化,生成模板函数 模板函数:这才是要被编译器所编译的 函数模板.模板的特例化. ...
- c++ 平衡树
平衡树的性质 它其实就是一个 BST(Binary Search Tree 二叉搜索树). 当然,不同的平衡树会有自己的特性 BST 的性质 只有一个:任意一个节点的左子树的所有节点都比它的优先级高, ...
- Wireshark学习笔记(二)取证分析案例详解
@ 目录 练习一:分析用户FTP操作 练习二:邮件读取 练习三:有人在摸鱼? 练习一:分析用户FTP操作 已知抓包文件中包含了用户登录FTP服务器并进行交互的一个过程,你能否通过wireshark分析 ...