python django的centos7部署
第一步:准备环境
1、准备centos7服务器
服务器可自行购买
2、安装宝塔Linux面板
Centos安装命令:
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
Ubuntu/Deepin安装命令:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
Debian安装命令:
wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh
Fedora安装命令:
wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
3、安装python对应的版本
进入目录下载python对应的版本
cd /tmp
wget https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz
如果想要快速下载可以使用迅雷下载对应的python版本,再推送到推送到服务器
可以使用pscp推送远程
pscp.exe下载
2》将下载的pscp.exe拷贝到C:\Windows\System32
3》搜索cmd,以管理员方式运行,是用pscp命令进行文件拷贝
推送文件指令
pscp D:\cwm2.0\cwm-app.zip root@172.18.190.64:/home/djn/
root@172.18.190.64's password:
解压文件
tar -zxvf Python-3.7.2.tgz
放到一个指定的文件夹中
mkdir /usr/local/python3
编译
Python-3.7.2/configure --prefix=/usr/local/python3/
编译安装
sudo make
sudo make install
建立一个软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
建立pip软链接
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
4、安装配置虚拟环境
安装virtualenv、virtualenvwrapper
pip3 install virtualenv
pip3 install virtualenvwrapper
注:virtualenv 是python虚拟环境包,virtualenvwrapper是虚拟环境管理包
创建虚拟环境存放文件夹
自己定义创建到哪个目录下
mkdir ~/.virtualenvs
修改.bashrc文件
vim .bashrc
# 添加下面三行代码
# 指定virtualenvwrapper执行的python版本
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
# 指定虚拟环境存放目录,.virtualenvs目录名是我们刚建的
export WORKON_HOME=/home/$USER/.virtualenvs
# virtualenvwrapper.sh所在目录
source /usr/local/bin/virtualenvwrapper.sh
启动配置文件 使修改立即生效
source .bashrc
创建虚拟环境
mkvirtualenv 虚拟环境名
切换虚拟环境
workon # 回车会出现所有的虚拟环境
workon 虚拟环境名 # 切换到该虚拟环境
退出虚拟环境
deactivate # 什么都不需要选
5、安装项目依赖包
可以一个一个装,不过要注意安装的版本号
pip install flask==2.1.1
建议通过freeze 导出所有依赖包
在项目环境下执行
pip freeze >requirements.txt
到服务器虚拟环境执行
pip install -r requirements.txt
第二步:导入项目到centos服务器
到宝塔控制面板可以本地直接上传文件(不建议)
文件>>>上传>>>选择目录
终端拉取远程仓库代码到本地
git clone 仓库地址
在宝塔网站面板添加项目站点,并选择项目所在的根目录
第三步:编写Uwsgi的配置文件
配置uwsgi.ini
在项目根目录配置
[uwsgi]
# socket nginx把请求转发给uwsgi走socket
socket = 和uwsgi交互的端口号
chdir= 项目文件目录
wsgi-file = 项目的wsgi.py路径
module=项目名称.wsgi:application
# process-related settings
# master
master = true
# pythonpath=/usr/local/lib/python3.7/site-packages
home =#云服务器上的虚拟环境路径
# maximum number of worker processes
processes = 4
# ... with appropriate permissions - may be needed
# chmod-socket = 664 #分配socket的权限
# clear environment on exit
vacuum = true
touch-logreopen = /home/log/touchforlog
daemonize = /home/log/Calculator_uwsgi.log
# LK new setting
buffer-size = 65536
env = DJANGO_SETTINGS_MODULE=项目名称.settings
module = django.core.wsgi:get_wsgi_application()
pidfile = ./uwsgi.pidwsgi]
编写启动、暂停、重启文件
start.sh文件
# 启动文件内容:
uwsgi --ini 你的uwsgi.ini文件全称(带后缀) --safe-pidfile ./uwsgi.pid
stop.sh文件
#暂停文件内容
uwsgi --stop ./uwsgi.pid
restart.sh文件
# 重启文件内容
uwsgi --stop ./uwsgi.pid
sleep 1
git pull
sleep 1
git submodule update
sleep 1
uwsgi --ini 你的uwsgi.ini文件全称(带后缀)--safe-pidfile ./uwsgi.pid
sleep 5
第四步:编写Nginx的server配置
在Nginx配置信息中添加server
server {
listen 监听对外的端口号
server_name 访问域名配置
charset UTF-8;
access_log off;
#access_log /home/log/contract_nginx_access.log;
error_log 项目运行日子路径
client_max_body_size 75M;
location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:(uwsg交互的端口号)
uwsgi_read_timeout 1800;
uwsgi_send_timeout 300;
proxy_read_timeout 300;
}
location /static {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /usr/static; # 静态文件的路径地址
}
}
在宝塔安全页面添加对外端口号放行
第五步:通过Uwsgi启动项目
有start.sh 文件
在项目根目录执行
./start.sh
没有配置启动文件
在项目根目录执行:
uwsgi --ini (uwsgi.ini文件全称(带后缀))--safe-pidfile ./uwsgi.pid