以下教程来源于武沛齐老师,请支持老师的原版视频。
1.服务器选购和配置
1.1.服务器选购

1.2.防火墙/安全组配置

80是HTTP的端口,443是HTTPS的端口,22是远程连接的端口,3306是mysql的端口。
1.3.远程连接软件(tabby)配置
下载:https://github.com/Eugeny/tabby/releases/tag/v1.0.223

选择配置和连接

点击管理配置

点击新建/配置文件组
,输入名称(我这里输入的是常用
)
点击克隆
输入名称,选择分组,主机那输入服务器的IPv4地址(公网IP),输入密码,点击保存。
此时我们再来到配置页,发现分组多了一个常用组,且新标签页的默认配置改为了SSH,然后我们点击最上方的小电脑图标从而打开一个新标签页,并选择SSH,点进去选择"保存并记住本机密钥",发现连接成功。

1.4.mysql配置
通过tabby连接上服务器后,输入以下命令
shell
# 安装服务器
yum install mariadb-server -y
# 安装客户端
yum install mariadb -y
# 启动,停止服务的命令是systemctl stop mariadb
systemctl start mariadb
# 设置开机自启动
systemctl enable mariadb
# 账号初始化
mysql -u root -p
# 紧接着回车
use mysql;
# 查看用户数据表
show tables;
# 查看mysql默认提供的账号
select Host,User from user;

可以看到其中第一条localhost和第一条vm-20-14-centos
(这里每人主机名不同,名称会不同)以及::1
,这三条账户的安全性较低,于是我们删除这三条账户
sql
delete from user where Host='localhost.localdomain';
delete from user where Host='localhost' and User='';
delete from user where Host='::1' and User='root';
delete from user where Host='vm-20-14-centos';
最后查看默认账户,如下:
紧接着我们要为是root
的账户都设置密码
sql
# 更新密码
UPDATE user SET password=password('你的密码') WHERE user='root';
# 刷新配置
flush privileges;
因为root的权限太大了,这是整个远程服务器的管理员,所以我们需要为我们本次部署的项目再创建一个用户
sql
insert into mysql.user(user,host,password) values('你的项目名','%',password('你这个项目账号的密码'));
接着,我们为我们部署的项目创建一个数据库并授权
sql
# 创建数据库
CREATE DATABASE 你的项目名 DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_bin;
FLUSH PRIVILEGES;
# 授权
grant all privileges on 你的项目名.* to 你的项目名@'%';
本地测试一下这个mysql是否可以连接
bash
mysql -h 你的服务器公网IP -u 你的项目名 -p
# 紧接着输入密码
1.5.python环境配置(virtualenv和python3.9)
shell
# 查看服务器上python3的版本
python3 --version
如果显示的是python 3.9.x
,则命令如下:
shell
# 安装虚拟环境
pip3.9 install virtualenv
# 创建虚拟环境目录并创建虚拟环境
mkdir /envs
virtualenv /envs/你的项目名 --python=python3.9
如果显示的是python 3.6.x
,则命令如下:
shell
pip3.6 install virtualenv
# 创建虚拟环境目录并创建虚拟环境
mkdir /envs
virtualenv /envs/你的项目名 --python=python3.6
如果显示的是其他python
版本,则以此类推,接着进行虚拟环境的激活。
shell
# 激活虚拟环境
source /envs/你的项目名/bin/activate
# 退出虚拟环境是deactivate
1.6.git安装
shell
yum install git -y
2.代码部署
现在,整个项目的架构如下:
2.1.git仓库创建
视频中用的是gitee,本人用的是github,都可以哈。
shell
# 激活虚拟环境
source /envs/你的项目名/bin/activate
cd /data/
# 我用的仓库地址是SSH地址,不是HTTPS地址
git clone 你的仓库地址
cd 仓库目录
# 切换到frontend分支,如果你的仓库只有一个主分支,可以忽略
git checkout frontend
# 之后每次代码有所改动时,git pull origin 分支名进行拉取
2.1.1.Github的SSH认证
注意,现在git升级了,特别是你同意了F2A协议的话,有可能执行完git clone
后要求你登录并认证。我在这提供SSH的认证。

bash
# 在服务器上生成SSH密钥对,即使此时在虚拟环境中也可以
ssh-keygen -t ed25519 -C "[email protected]"
# 按提示操作(可以直接按Enter接受默认文件位置和空密码)
# 查看并复制公钥
cat ~/.ssh/id_ed25519.pub
然后将公钥添加到Git托管平台
- 登录GitHub,点击右上角头像 → Settings → SSH and GPG keys
- 点击"New SSH key",粘贴复制公钥内容,添加描述并保存。
- 在服务器上输入
ssh -T [email protected]
进行测试
2.2.项目依赖安装
shell
pip install -r requirements.txt
注意,如果报错,可能是某些依赖版本较高,可以借鉴如下:
如果你的服务器python版本是3.9,参考如下:
txt
Django==4.0.9
djangorestframework==3.13.1
django-cors-headers==3.13.0
mysqlclient==2.1.1
urllib3==1.24.3
如果你的python版本是3.6,参考如下:
txt
Django==3.2.25
djangorestframework==3.12.4
django-cors-headers==3.10.1
mysqlclient==2.1.1
2.2.1.mysqlclient安装报错
如果报错如下:
shell
# 安装python开发包
sudo yum install python3-devel -y
# 查看 Python.h 路径(根据你的 Python 版本调整路径)
ls /usr/include/python3.6m/Python.h
# 有输出则没问题,随后重新安装项目依赖即可
2.3.local_settings.py和数据库迁移
shell
yum install vim -y
touch local_settings.py
vim local_settings.py
按i
,输入内容如下:
python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '1.4.中你服务器上mysql的项目对应的数据库',
'USER': '1.4.中你服务器上mysql的项目对应的数据库的账号',
'PASSWORD': '1.4.中你服务器上mysql的项目对应的数据库的密码',
'HOST': 'localhost',
'PORT': '3306',
'OPTIONS': {
'charset': 'utf8mb4',
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
}
}
}

点击esc
,然后输入:wq
,按回车保存退出。
shell
# 回到项目根目录
cd ..
python manage.py makemigrations
python manage.py migrate
2.4.测试运行
shell
python manage.py runserver 0.0.0.0:80
然后在浏览器输入服务器公网IP,显示如下:
其实项目已经部署好了,我们也进到了这个项目里,只是报了400。
页面信息和我不一样的很正常,因为我们部署的python项目是不一样的。
3.静态资源配置
现在我们的项目结构如下,主要要进行红色步骤的配置,如果是静态资源,我们直接返回静态资源,所以需要进行静态资源的收集。如果是动态资源,我们nginx转发给uwsgi让其进行处理。
