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

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

[复制链接]
我来看看 发表于 2023-03-20 22:45:34 | 显示全部楼层 |阅读模式
" v; X1 o; p9 s) r

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

/ o2 c" E; V9 Z( Q- {4 s

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

2 c4 u& H, S% z. r

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

- L6 U9 G: M3 ^) e# [

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

- T2 A, [ ~" ]

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

; O, H6 q, j& W8 S' q; D; Z/ K

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

n2 b% R6 D' N! L' T: w! D

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

+ u: p. {( w* {& c$ p8 A

激活虚拟环境linux: . venv/bin/activate5 j8 T1 q$ w7 }8 B windows: venv\Scripts\activate安装依赖pip3install-rrequirements.txtlinux-ubuntu安装uwsgi

: _/ r( S3 [: N% I

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

5 K6 x/ ~; D$ T, O6 P0 T8 j5 n" r

pip3 install mysqlclient2、配置数据库连接在项目包下找到setting.py,基本配置如下DATABASES = { 2 u' w' F, ?& O4 ~! W) a A default: {2 E. K* Q2 X* r1 E" {7 H ENGINE

y0 Z5 ^: w5 X' w) N% j: W

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

m/ j2 f$ ^5 {8 s4 u

: 123456, # 连接用户密码HOST: 127.0.0.1, # 数据库所在ip地址PORT: 3306# 数据库端口 " h q9 z1 d7 K; p" j } 5 l2 ?- L- o; g/ o0 |4 m& C3 u J }数据库配置完成之后,去修改网站的配置文件!

/ [9 T) T1 L" S* ~4 [" u) g

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

; U( F5 u, e) q' V- I0 ?( n* d4 c! I

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

- b9 t( ?5 D( a, R

如图所示,我们在该文件夹下分别创建一个params的文件与uwsgi.ini的文件params中的内容如下uwsgi_param QUERY_STRING $query_string; & Z8 A1 N0 [( j% d! A- I, ]; z; i5 l uwsgi_param

2 g, l2 `' \' D4 K. V b

REQUEST_METHOD $request_method; + Z& ?' h& y1 d/ i4 S# B/ M% X C uwsgi_param CONTENT_TYPE $content_type;9 \' W/ G: p3 m$ |3 X uwsgi_param CONTENT_LENGTH

% V/ s, q1 t" L& d3 }, ?) u- K

$content_length;! T& a+ Q5 x: f5 x" K : l/ `/ I) m2 @9 a% Q6 w. s" t uwsgi_param REQUEST_URI $request_uri;; Z+ `! ? I5 a: ]# d, C' A, T uwsgi_param PATH_INFO $document_uri

5 q2 n9 i0 _$ O$ l

; * b* E+ P6 j/ _ uwsgi_param DOCUMENT_ROOT $document_root; 1 Z. }+ E) u5 H* [/ _ M' S uwsgi_param SERVER_PROTOCOL $server_protocol;7 ^" ?! {1 t7 W) D- a4 S& M uwsgi_param

7 U8 `% g+ p- s0 [) ]5 f2 X2 }

REQUSET_SCHEME $scheme;, B8 { A; z' @0 h8 V" d$ V4 ^; H uwsgi_param HTTPS $https if_not_empty;9 m$ I8 t+ [- v7 L7 u3 t: Y, l % c4 o, N+ }4 Y* n5 [ uwsgi_param REMOTE_ADDR

! R; M$ _% f2 M8 p8 X! S

$remote_addr;3 J, S- L: G$ U uwsgi_param REMOTE_PORT $remote_port; ! b4 @2 t0 L8 O9 E# L6 v uwsgi_param SERVER_PORT $server_port

( }6 ]/ F" L. q4 n. m; S9 S

; K- g' N# F s0 d( B8 c( p uwsgi_param SERVER_NAME $server_name;这个文件中的内容我们可以不用去深究是什么意思,直接拿去用就可以了,他主要的目的就是转发非静态文件请求到uwsgi服务!

: N' e7 t" U- L" u- @( u

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

}2 F4 S' }% _/ V/ D+ X s+ q

socket = 127.0.0.1:8001#指定项目的目录,在app加载前切换到当前目录chdir = /www/wwwroot/proae.cn) Q; W" v9 t# E7 E, x 5 ]! _1 C2 O0 z7 G$ q1 _2 ]: { # Django的wsgi文件,用来加载blog2/wsgi.py这个模块

F* e* b9 T. b1 I& A% R3 U

module = mysite.wsgi # I; u" L' X4 M8 [, \& W/ j! q! C # Python虚拟环境的路径home = /www/wwwroot/proae.cn/venv ) N$ z; W8 {! V # master 启动主进程。

3 U4 a( j% \( E3 F- H' k

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

* R4 ~' h& l: y: I

# 退出的时候是否清理环境,自动移除unix Socket 和 Pid 文件vacuum = true#日志文件路径daemonize = /www/wwwroot/proae.cn/deploy/uwsgi.log * o4 f, |$ ^6 s# F

6 o6 I& l7 V4 M" t1 d

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

! o/ ?2 |7 W/ V/ k6 V1 |: q6 N

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

2 I1 ]* X* R' L/ o6 @& r' V% i

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

) j4 M" u! p o- [

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

) z! h* P8 ?. Y. u" a

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

" U* t$ u6 W& a. L0 Q

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

. q# {) Y/ f; g2 R! l: x2 j3 M 6 O) W) Z0 w1 e6 Z. l8 N! s , A$ l' A9 H" d' p/ A) Y0 ` 4 i4 o9 V! p$ U- s1 E0 s& o7 e 9 T8 k) D S; E/ w. v+ H

暂时无法加载帖子列表

回复

使用道具 举报

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

使用道具 举报

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

    本版积分规则

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

    GMT+8, 2026-9-11 15:03 , Processed in 0.037647 second(s), 25 queries , Gzip On.

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

    Powered by Discuz! X3.5

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