|
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 |