Python web项目部署
远程服务器
xshell 远程连接
软件网址:https://www.xshell.com/zh/xshell/
git 上传代码
- 安装git
官网 :https://git-scm.com/ - 创建仓库
我选择在gitee上创建仓库,然后复制仓库地址
比如说:https://gitee.com/username/test - 创建本地仓库
电脑安装git,然后创建本地仓库
配置.gitignore文件,忽略不需要上传的文件
python项目配置.gitignore文件示例:参照.gitignore文件,可以直接网上搜索 - 本地仓库上传代码
一次性代码:
# 配置用户名和邮箱
# 这里的用户名和邮箱是gitee的,用于上传代码做配置
git config --global user.name "名字"
git config --global user.email "邮箱"
cd test # 进入项目目录
git init # 初始化本地仓库
git remote add origin https://gitee.com/username/test.git # 添加远程仓库地址
# 这里可能需要输入gitee的账号和密码
# 如果是win10系统,需要安装,密码会保存在windows的凭据中
常用命令:
git add . # 添加所有文件
git commit -m "init" # 提交代码,init为备注,可以用于记录本次提交的备注
git push origin master # 提交代码到远程仓库,master为分支名
# Ps:origin为远程仓库地址,master为分支名,因为之前已经配置了远程仓库地址,所以这里origin就是远程仓库地址,简化了操作.
同步代码(下载代码):
5.1 服务器安装git
yum install git
5.2 第一次下载代码:
cd /test # 进入项目目录
mkdir www # 创建www目录
cd /test/www/ # 进入www目录
git clone https://gitee.com/username/test.git # 下载代码,克隆到www目录
# 这里可能需要输入gitee的账号和密码
5.3 后续同步代码:
cd /test/www/test # 进入项目目录
git pull origin master # 下载代码
# Ps:origin为远程仓库地址,master为分支名,因为之前已经配置了远程仓库地址,所以这里origin就是远程仓库地址,简化了操作.
配置服务器环境
安装python3
安装
gcc
,用于编译python源码yum install gcc
- 安装python依赖
yum install zlib zlib-devel -y
yum install bzip2 bzip2-devel-y
yum install ncurses ncurses-devel-y
yum install readline readline-devel-y
yum install openssl openssl-devel-y
yum install xz lzma xz-devel-y
yum install sqlite sqlite-devel-y
yum install gdbm gdbm-devel-y
yum install tk tk-devel -y
yum install mysql-devel -y
yum install python-devel -y
yum install libffi-devel -y
下载python源码
cd /test/ wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz
注意如果没有wget命令,需要安装
yum install wget -y
解压,编译安装
- 解压
tar -xvf Python-3.9.5.tgz
- 进入目录并编译安装
cd Python-3.9.5 ./configure make all make install
- 安装完成后,测试是否安装成功
python3 --version >>> print("hello world") /usr/local/bin/python3 /usr/local/bin/pip3 /usr/local/bin/pip3.9
- 配置其他的python源
pip3.9 config set global.index-url https://pypi.douban.com/simple/
也可以配置其他的国内镜像源
配置服务器虚拟环境
安装virtualenv
安装virtualenv
pip install virtualenv
如果安装失败,可以尝试使用
pip3 install virtualenv
如果还是失败,可以尝试使用yum install python3-devel -y
安装依赖创建虚拟环境
mkdir /envs cd /envs virtualenv /envs/venv --python=python3.9 # venv为虚拟环境名称,可以自己命名,python3.9为python版本 virtualenv venv
激活虚拟环境
source venv/bin/activate
激活之后,在执行安装命令的时候,就会自动安装到虚拟环境
比如:pip install django pip install django==1.10 pip install flask
如果我想运行,那么直接进入某个项目的目录
cd /www/wwwroot/项目目录 python manage.py runserver、python manage.py runserver 0:8000 或者 python app.py
都是可以的,但是这样运行,还是不够安全,性能也一般
- 退出虚拟环境
deactivate
删除虚拟环境
rm -rf venv(虚拟环境名称)
配置uwsgi,基于wsgi运行python项目
安装uwsgi
在虚拟环境下安装
1.1 首先要激活虚拟环境
source venv(虚拟环境目录)/bin/activate
1.2 安装uwsgi
pip install uwsgi
基于uwsgi运行项目
2.1 基于命令方式:
cd /项目路径 uwsgi --http :8080 --wsgi-file app.py--callable app
2.2 基于配置文件方式(推荐):
uwsgi --ini uwsgi.ini
2.3 配置文件示例
假设虚拟环境名字是 venv:
[uwsgi] # 指定项目路径 chdir = /Users/admin/Desktop/bushu # 指定项目内wsgi模块 wsgi-file = app.py # 指定wsgi模块中变量名 callable = app # 指定端口 http = :8080 # 指定进程数 processes = 4 # 指定线程数 threads = 2 # 指定主进程 master = true # 指定pid文件 pidfile = uwsgi.pid # 指定日志文件 daemonize = uwsgi.log # 指定错误日志文件 error-log = uwsgi.log # 指定wsgi模块 module = app # 指定虚拟环境 home = /Users/admin/.virtualenvs/venv # 指定虚拟环境bin目录
其他命令
--后台模式运行
uwsgi --ini uwsgi.ini &
--查看进程
ps -ef | grep uwsgi
--关闭进程
kill -9 pid(进程号)
配置nginx,反向代理
安装nginx
1.1 任何位置执行以下命令,都可以安装nginx
yum install nginx -y
1.2 Nginx会被安装在以下目录:
主配置文件目录:/etc/nginx/ 程序文件目录:/usr/share/nginx/ 日志文件目录:/var/log/nginx/ 网站文件目录:/usr/share/nginx/html/
配置nginx
请求转发到我的项目端口
/static/ 静态资源 直接转发到静态资源端口
2.1 配置文件目录:/etc/nginx/nginx.conf,实际上需要替换掉默认的配置文件
2.2 删除默认配置文件
rm nginx.conf
2.3 创建配置文件
cd /etc/nginx/ # 配置文件目录 vim nginx.conf # 创建并打开配置文件 输入 i 进入编辑模式,复制以下内容 退出编辑模式,按 esc 输入 :wq 保存并退出
2.4 配置文件示例
user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules.See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 4096; include /etc/nginx/mime.types; default_type application/octet-stream; upstream flask { server 127.0.0.1:8001; } server { listen 80; listen [::]:80; location /static { alias /data/www/day28/static; } location / { uwsgi_pass flask; include uwsgi_params; } } }
启动nginx
3.1 启动nginxsystemctl start nginx # 启动nginx systemctl stop nginx # 关闭nginx systemctl restart nginx # 重启nginx
3.2 配置开机启动
systemctl enable nginx # 开机启动 systemctl disable nginx # 取消开机启动
3.3 启动 python 项目
先激活虚拟环境 source 虚拟环境目录/bin/activate 进入项目目录 cd /项目目录 启动项目 uwsgi --ini uwsgi.ini
其他补充
重启脚本可以使用shell脚本
安装 supervisor
Supervisor进程管理器。Supervisor能够监控和控制系统中的多个进程,确保它们在后台稳定运行,并在意外停止时进行自动重启。这对于需要在系统中长期运行的服务和应用程序非常有用,如Web服务器、数据库、消息队列等。
yum install supervisor -y
- 安装完成后,在/etc/supervisord.d目录下会生成一个名为supervisord.conf的配置文件。
- 使用方法以后补充
安装mysql
安装mysql
yum install mysql-server -y # 安装mysql yum install mariadb-server y # 安装mariadb yum install mariadb # 安装mariadb客户端
后续补充
域名和https
后续补充
暂无评论数据