找回密码
 加入怎通
查看: 176|回复: 0

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

[复制链接]
我来看看 发表于 2023-03-20 22:45:34 | 显示全部楼层 |阅读模式
4 i0 w/ a- z7 M( [0 q

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

) @; G# ~/ r6 M- W

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

0 }. K( A1 }' D8 k/ X

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

' B8 U/ u6 V# a

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

8 n" x: ]2 N \8 A) V

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

# A5 D; d0 z, p4 C! r9 c

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

) E; E! |1 q) B- l9 t7 R

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

3 N7 @; i; f: e" A7 y

激活虚拟环境linux: . venv/bin/activate 9 w- m2 L6 M I k$ u! w windows: venv\Scripts\activate安装依赖pip3install-rrequirements.txtlinux-ubuntu安装uwsgi

& l$ `3 F B4 Q/ m5 e# I1 |

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

p) B- _6 r2 W( P( W5 B5 @

pip3 install mysqlclient2、配置数据库连接在项目包下找到setting.py,基本配置如下DATABASES = {3 t" J2 x4 ^; P default: { $ G: U5 v, N' v% f4 l/ ?5 C" Q ENGINE

3 `9 J- \4 R+ h' z/ s7 P

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

T5 c/ B) m5 `2 o) A

: 123456, # 连接用户密码HOST: 127.0.0.1, # 数据库所在ip地址PORT: 3306# 数据库端口1 f8 \+ }" a8 p/ y, c& M } ) M& T. [: w1 Q0 n$ W }数据库配置完成之后,去修改网站的配置文件!

6 _- u( h! T; k

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

9 T) b7 u* @" `5 [5 D

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

+ v) S7 ]' a9 w2 r/ v1 L

如图所示,我们在该文件夹下分别创建一个params的文件与uwsgi.ini的文件params中的内容如下uwsgi_param QUERY_STRING $query_string;3 a2 B( H8 C7 ] uwsgi_param

|5 @6 | _* l# R% y" @7 y! u

REQUEST_METHOD $request_method;' ^7 Z2 \6 u. K' i; m, {/ e uwsgi_param CONTENT_TYPE $content_type; 0 d% j7 O4 t8 \4 y. { uwsgi_param CONTENT_LENGTH

1 X: z8 M- |% ]/ R1 o

$content_length;' a+ X& j. W( F* L D u" m7 _ / `/ \! B5 @8 K7 v+ K$ \ uwsgi_param REQUEST_URI $request_uri; {2 k9 N1 O6 x( |" e uwsgi_param PATH_INFO $document_uri

# j+ m9 Y6 \1 I9 w M

;- w: Y& g- ?* Y: W7 E2 B) C uwsgi_param DOCUMENT_ROOT $document_root;9 f/ D4 ^9 j0 b$ I( h uwsgi_param SERVER_PROTOCOL $server_protocol; $ T0 E5 j! d: r. y" x5 P) J% T/ M uwsgi_param

/ H. I# i9 K4 S& f$ F5 q% `

REQUSET_SCHEME $scheme;) X! X5 G' h- m uwsgi_param HTTPS $https if_not_empty;$ N* B1 s+ v n' K ]/ _7 t % e1 h8 d4 ?0 ?+ ? uwsgi_param REMOTE_ADDR

* ~. Z% S Z* X0 _: l7 n1 j5 o

$remote_addr;8 o2 E7 e \$ t `$ y) k uwsgi_param REMOTE_PORT $remote_port;. b% J9 {- a& L% I2 A uwsgi_param SERVER_PORT $server_port

# _( c2 U) z T; \+ ]

; 7 z) v$ ?+ w3 D4 B uwsgi_param SERVER_NAME $server_name;这个文件中的内容我们可以不用去深究是什么意思,直接拿去用就可以了,他主要的目的就是转发非静态文件请求到uwsgi服务!

: v- E0 Y" p1 p# s; R) H& G+ U8 `

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

- Q1 ? v' h9 h# h/ X% c" t! G

socket = 127.0.0.1:8001#指定项目的目录,在app加载前切换到当前目录chdir = /www/wwwroot/proae.cn / V) H* O2 e, [& }, z8 A / }4 q' l X! s3 w& b9 | # Django的wsgi文件,用来加载blog2/wsgi.py这个模块

$ s& J' N. U! @. h) Y' u* l

module = mysite.wsgi3 {' w/ O% b& B: w2 b# L- p2 r ? # Python虚拟环境的路径home = /www/wwwroot/proae.cn/venv& l/ H0 H' t# i- n # master 启动主进程。

/ E5 X) m, A! z6 c# |9 l- T

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

. P! F; K- _6 T

# 退出的时候是否清理环境,自动移除unix Socket 和 Pid 文件vacuum = true#日志文件路径daemonize = /www/wwwroot/proae.cn/deploy/uwsgi.log ' S. Q# ?) M: o! f" |

# x8 R, I. b. D: f

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

0 _- h( s- N2 B" l; {# K3 I

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

p$ g! k% M N3 o5 J& j/ ?4 u

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

?, {( {4 z; ]4 c7 s6 Y( `9 i

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

) N/ y& \% Y9 C ~* L: ~

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

) Z& F9 [( o" T7 f; C, }' r

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

0 g* d- y7 M A$ z6 F; f2 Q, J3 V B) x s- T4 j, R$ J" \ * @. a; u8 K) n2 i! F( \" L: t! P - k" W0 Z8 i0 W, c# ^2 H6 S . K; C$ a/ _) I" P, Q! B2 V& P
回复

使用道具 举报

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

    本版积分规则

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

    GMT+8, 2026-4-4 05:02 , Processed in 0.047848 second(s), 23 queries , Gzip On.

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

    Powered by Discuz! X3.5

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