背景
部署Django工程至云主机
部署步骤
1、申请一些内部权限/略
2、使用root下载python3.8源码安装包
3、解压,配置,编译,安装
解压:
cd /root/download/
tar xf Python-3.8.10.tgz
配置:
vi /root/download/Python-3.8.10/Modules/Setup
(把ssl相关的配置去掉注释) 注意SSL的路径需要和系统ssl路径一致
cd /root/download/Python-3.8.10
./configure --prefix=/usr/local/python3
编译,安装
apt-get install make
( 系统不预装make工具)
make && make install
4、创建虚拟环境(系统自带3.5,需要和安装的python3.8做好环境隔离)
这里已经在/home/userPath/python/project放好了工程代码
sudo -iu root
/usr/local/python3/bin/python3 -m venv /home/userPath/python/project/venv
source /home/space/python/project/venv/bin/activate
(确认已进入环境)
cd xxx/django_project/
pip3 install -r requirements.txt
5、创建启动脚本
用于一个django工程的快速启动,可以加上git pull这样就可以快速部署了
踩坑
1、不要卸载系统预装的python3.5,不要改apt源
云主机debian系统的apt工具依赖系统的python3.5,不要卸载
如果apt-get update异常直接找PE
2、安装python3.8(3.6及以上)需要配置ssl,否则pip安装时会报ssl错误
在解压后修改ssl的配置(部署步骤-3-配置)
通过whereis ssl 可以找到 ssl的路径
3、系统预装了openssl,但是openssl的依赖libssl-dev
root用户
apt-get install libssl-dev
4、云主机debian9 下MySQL 变成了mariadb
在安装 pip3 install mysql-client时会报错 mysql_config not found
需要安装下mariadb相关的客户端依赖
apt install libmariadbd18
apt install libmariadbd-dev
apt install mysql-client
5、其他可能需要的依赖,不报错可以不装
sudo apt-get install build-essential python-dev python-setuptools python-pip
python-smbus
sudo apt-get install build-essential libncursesw5-dev libgdbm-dev libc6-dev
sudo apt-get install zlib1g-dev libsqlite3-dev tk-dev
sudo apt-get install libffi-dev