大炮运维V587 发表于 2025-3-17 11:25:48

堡塔面板9.6.0+Python网站部署教程

本文讨论了Python部署的相关内容,包括Python环境准备、下载源码、修改配置信息、添加项目、检查运行状态、创建管理员、实现生产级部署、配置域名和外网映射以及动静态分离等步骤。关键要点包括:​
一、Python环境准备:下载Python版本并创建虚拟环境,避免包结构混乱。​
二、下载源码:通过git clone https://gitee.com/lylinux/DjangoBlog.git下载源码。​
三、修改配置信息:将默认的mysql数据库切换为pgsql,添加psycopg2-binary第三方库,使用环境变量文件配置数据库和redis缓存。​
四、添加并初始化项目:填写项目信息,执行初始化命令,若未执行可能导致启动失败。​
五、检查运行与创建管理员:检查项目运行状态,创建管理员。​
六、生产级部署:关闭DEBUG模式,将web应用托管给uWsgi服务,通过nginx代理服务并实现动静分离。​
七、配置与测试:配置域名和外网映射,使用命令收集并压缩静态文件,通过NGINX路由重写实现动静态分离后进行访问测试。


1. Python环境准备
a、版本下载


b.虚拟环境建立, 使用刚才安装的Python环境创建一个虚拟环境,防止包结构混乱带来的管理麻烦


2. 下载源码,调教一下数据库链接配置
a.1. git下载git clone https://gitee.com/lylinux/DjangoBlog.git


b.配置文件
i.djangoblog项目默认推荐使用的是mysql数据库,但是我测试的机器没有安装,故切换为pgsq数据库
ii.在djangoblog项目的配置文件在/DjangoBlog/djangoblog/settings.py,可以看到默认使用的数据库信息, 和redis缓存方式




iii.修改为支持pgsql, 因为使用了pgsql,所以需要再第三方包记录文件中添加 psycopg2-binary这个链接pgsql的第三方库


iv.因为该项目支持从环境环境变量获取配置信息,所以这里我使用创建一个名为myenvd的环境变量文件来配置数据库和redis缓存,方便后续管理




3.添加python项目
a.填写项目信息


b.初始化命令,这个也可之后自己在终端输入执行,不过django项目需要数据库信息才能正常访问,所以这里如果没执行初始化命令,会启动失败




c.等待项目创建成功


4.检查运行状态

a.正常运行, 如果没能正常运行可以检查是否有遗漏某些操作,没执行初始化是可能会出现启动失败的


b.创建管理器


c.直接访问服务, 发现访问失败,排查后发现本地监听的是127.0.0.1不是0.0.0.0,内网无法访问,遂修改启动命令,使内网可直接访问








5.实现生产级部署 (nginx + uwsgi + 动静分离)
a.这里测试DjangoBlog项目是一个基于python的wsgi网络协议运行的,可将web应用托管给uWsgi服务,提高运行效率,在通过nginx代理服务,同时将静态文件分离由nginx直接返回。
b.关闭DEBUG模式,切换到uwsgi服务运行




c.配置域名 (此处测试是通过本地host设置代替DNS域名解析的)


d.配置外网映射




e.配置动静态分离, djangoBlog项目支持将静态文件收集并压缩,放在一个固定的文件夹下,同时使用/static/.*的路由格式访问静态文件。静态文件收集并压缩的命令是之前初始化执行的命令
python manage.py collectstatic --noinput
python manage.py compress --force

由于Django将数据收集到了collectionstatic目录,所以此处我将使用NGINX路由重写实现
location /static/ {
    rewrite ^/static/(.*)$ /collectedstatic/$1 break;
}


访问测试


页: [1]
查看完整版本: 堡塔面板9.6.0+Python网站部署教程