找回密码
 加入怎通
查看: 185|回复: 1

宝塔面板让部署Django项目简直太简单了(宝塔面板apache自编译云锁防护模块)

[复制链接]
我来看看 发表于 2023-03-20 22:45:34 | 显示全部楼层 |阅读模式
: H% P1 ?% L [* m) Q; H: Z' |

宝塔面板是一款简单好用的免费服务器运维面板,支持Linux/windows系统,支持一键WAMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能部署django项目自然也不是问题,那么根据各自的系统如何安装宝塔面板,请大家移步到宝塔官方查看学习!。

; p# ~- S% n9 G+ D2 j. V0 f

一般服务器部署我们大都采用的是Linux系统,而Linux系统本身就自带了Python2和Python3版本,以较新的Ubuntu系统来说,在终端运行python3命令就会看到系统本身内置的python版本!

$ d. c+ q% a# B2 I

本部署教程将采用来部署我们采用django开发好的博客项目!

5 S" B: C4 D* H' H8 P* q) R4 j

专栏Django从零开发个人商业博客程序作者:轻编程29.9币27人已购查看安装Nginx+MySQL

; Z' F+ |1 z0 m

如上图所示,进入宝塔面板==>软件商店搜索Nginx和Mysql安装!创建站点及数据库

+ x1 m% L+ X3 j" p) V2 }; x

如上图所示,进入网站==>添加站点,设置网站需要绑定的域名,创建mysql数据库,并记录数据库账号密码!进入站点目录打开终端克隆Django项目

6 P. g5 U% Q: }% Q& K) k v2 A6 w0 m

从宝塔面板,进入网站根目录,打开终端,克隆项目!克隆项目命令 git clone https://gitee.com/qbiancheng/django-blog.git创建虚拟环境python3 -m venv venv

. a# q0 g* i* T7 E: @

激活虚拟环境linux: . venv/bin/activate. `, J4 l( v/ u4 H, e) I, ~ windows: venv\Scripts\activate安装依赖pip3install-rrequirements.txtlinux-ubuntu安装uwsgi

E# q5 |( `: b

对于 Python3.x 版本:uwsgi相关命令参考:sudoapt-get install python3-devsudopip3 install uwsgiDjango集成Mysql数据库1、安装mysql数据库,执行

) {+ p' m; ?$ {0 [8 o+ F5 y: h! A; J

pip3 install mysqlclient2、配置数据库连接在项目包下找到setting.py,基本配置如下DATABASES = {- B) g# B+ _' A7 w+ V. R) P1 p default: { , o5 M2 c+ z: }$ J" T ENGINE

/ y+ u; H. T" a# L' S1 J: v6 f

: django.db.backends.mysql, # 数据库驱动NAME: webdetection, # 数据库名USER: root, # 连接用户名PASSWORD

0 ]/ i6 w' y/ T1 K0 `% F- p

: 123456, # 连接用户密码HOST: 127.0.0.1, # 数据库所在ip地址PORT: 3306# 数据库端口; {& k9 d0 G+ y% C1 h2 \ }% [% g- _$ E7 e/ L7 V+ P( x }数据库配置完成之后,去修改网站的配置文件!

' C8 ]) ] ~* v# ~/ }

网站=>设置=>配置文件打开网站的配置文件,修改为如下内容

; T Y' N. m6 d

在项目目录创建一个deploy的文件夹,用来存放uwsgi的配置文件及日志文件!

) U$ z6 |' t0 m3 `/ B2 t* o6 ~" g

如图所示,我们在该文件夹下分别创建一个params的文件与uwsgi.ini的文件params中的内容如下uwsgi_param QUERY_STRING $query_string;8 M w) ]3 N6 h6 l, `2 a4 Y0 a uwsgi_param

. I: ^5 X% O3 l' @; ^

REQUEST_METHOD $request_method; ' K2 j8 R+ _2 o" R2 r0 _; q uwsgi_param CONTENT_TYPE $content_type; 5 W: \& m; C" H uwsgi_param CONTENT_LENGTH

# s) U8 F# j, u5 A

$content_length; / v. }! n' y% @ 4 p3 c1 t0 i' M3 C* T uwsgi_param REQUEST_URI $request_uri; . B- P- s: D) n uwsgi_param PATH_INFO $document_uri

* M7 ~& \; E2 N- m! l* _

; ) b- N/ P/ V6 @ uwsgi_param DOCUMENT_ROOT $document_root; J9 p/ q9 S( F" m4 h* s. F5 n* e7 | uwsgi_param SERVER_PROTOCOL $server_protocol; L/ w7 @; f- t* l uwsgi_param

$ J0 Q2 V2 m4 e9 g& I" j7 v

REQUSET_SCHEME $scheme; # t, z: E4 f3 y0 e( s uwsgi_param HTTPS $https if_not_empty;$ V, W* K8 j/ h- Z ! Y/ K) r5 h/ W4 [: \4 H uwsgi_param REMOTE_ADDR

) h7 V. [9 L7 \. u' z3 Q

$remote_addr; : a" r! C) q' M4 C" k+ L# m uwsgi_param REMOTE_PORT $remote_port;3 |1 s& c0 [, [1 q1 E. r" x6 [+ H uwsgi_param SERVER_PORT $server_port

8 Q; o- S) g" Y, z# U6 y [

;! t* G) }& M& x; F: |* x uwsgi_param SERVER_NAME $server_name;这个文件中的内容我们可以不用去深究是什么意思,直接拿去用就可以了,他主要的目的就是转发非静态文件请求到uwsgi服务!

, g9 e6 j: }5 C/ M6 `* l3 A

uwsgi.ini文件中的内容如下#配置域应该是uwsgi,记住这个不能丢,否则会报错[uwsgi]#uwsgi监听的socket,可以为socket文件或ip地址+端口号,用nginx的时候就配socket , 直接运行的时候配 http, http-socket = 127.0.0.1:8080

/ m5 z5 u5 E5 I

socket = 127.0.0.1:8001#指定项目的目录,在app加载前切换到当前目录chdir = /www/wwwroot/proae.cn( f& f1 X3 B6 J! ` t( w& b9 { {! S # Django的wsgi文件,用来加载blog2/wsgi.py这个模块

' e, A0 X9 I% b% c& _

module = mysite.wsgi 5 w" t- X# q0 }7 S4 [& k # Python虚拟环境的路径home = /www/wwwroot/proae.cn/venv $ |" X* @1 C9 r$ [6 M/ r # master 启动主进程。

3 ?0 e; @& w% a3 \% K6 c" q

master = true# 最大数量的工作进程数processes = 10# 指定工作进程中的线程数threads = 2# 设置socket的权限chmod-socket = 664

7 m7 W) O7 c. A' L

# 退出的时候是否清理环境,自动移除unix Socket 和 Pid 文件vacuum = true#日志文件路径daemonize = /www/wwwroot/proae.cn/deploy/uwsgi.log( K1 f, {& L) I" b6 V* }5 Z# O

3 N. q/ r2 S0 h/ `; N

# pid文件pidfile = /www/wwwroot/proae.cn/deploy/uwsgi.pid每一项的配置含义均已备注,大家看备注修改为自己的即可!

2 D) b# n; U/ U& V- U" @7 a

专栏Django从零开发个人博客网站作者:轻编程19.9币120人已购查看启动uwsgi服务在启动uwsgi服务之前确保你的项目在开发模式已经可以正常运转,并且配置的服务器的端口处于开放状态,并且你已经对项目的静态文件进行了搜集!

# P9 |8 C- r6 T. @1 f6 W+ b

备注:运行以下命令,必须在激活虚拟环境的情况下!启动uwsgiuwsgi --ini deploy/uwsgi.ini这个命令启动后,会在deploy的目录生成一个uwsgi.pid的文件,这里边记录了几个数字,是本项目的进程号,后边重启uwsgi及停止都运行这个文件即可!

8 Y; r: W( q+ c

重启uwsgiuwsgi --reload deploy/uwsgi.pid一般在你修改了django项目的一些逻辑以及功能流程的时候都需要重启uwsgi,运行该命令即可!停止uwgiuwsgi --stop de[loy/uwsgi.pid

* X, Y3 U/ R* D6 e/ }8 {9 c

总结无论是用宝塔还是服务器直接部署django,都逃不出配置Nginx使其正确加载静态文件,配置uwsgi,关联nginx与uwsgi这几个步骤,掌握了这几个核心步骤,无论何种方法,我们配置中设置的那几个文件均适用,部署也就变得更加容易和简单!

( B# Q5 }6 f- u! s' V

(此处已添加圈子卡片,请到今日头条客户端查看)

" @9 @: q& O$ {( s# C Q1 z6 G+ n$ L! ]2 o/ ~0 i! U7 u7 w* y8 r 8 U2 t* k2 i- Z! O: i * K9 m( m6 G0 Z, D) M! t * j) B! g9 B; C5 x

暂时无法加载帖子列表

回复

使用道具 举报

老阳 发表于 2026-09-10 09:33:47 | 显示全部楼层
这个分享太实用了,刚好能用到,感谢楼主!
回复

使用道具 举报

    您需要登录后才可以回帖 登录 | 加入怎通

    本版积分规则

    QQ|手机版|小黑屋|网站地图|真牛社区 ( 苏ICP备2023040716号-2 )

    GMT+8, 2026-9-11 12:09 , Processed in 0.039584 second(s), 25 queries , Gzip On.

    免责声明:本站信息来自互联网,本站不对其内容真实性负责,如有侵权等情况请联系420897364#qq.com(把#换成@)删除。

    Powered by Discuz! X3.5

    快速回复 返回顶部 返回列表