|
: c1 z# Q* O% @! t6 q+ @& B 宝塔面板是一款简单好用的免费服务器运维面板,支持Linux/windows系统,支持一键WAMP/集群/监控/网站/FTP/数据库/JAVA等100多项服务器管理功能部署django项目自然也不是问题,那么根据各自的系统如何安装宝塔面板,请大家移步到宝塔官方查看学习!。
. L9 G; p2 {4 X6 V- d+ A 一般服务器部署我们大都采用的是Linux系统,而Linux系统本身就自带了Python2和Python3版本,以较新的Ubuntu系统来说,在终端运行python3命令就会看到系统本身内置的python版本! 0 Y6 u) E/ T* ^. J# x) ]* w, i
本部署教程将采用来部署我们采用django开发好的博客项目!
: r$ E( J$ N1 D. [ 专栏Django从零开发个人商业博客程序作者:轻编程29.9币27人已购查看安装Nginx+MySQL
8 |+ V: |: K& ?- {3 B 如上图所示,进入宝塔面板==>软件商店搜索Nginx和Mysql安装!创建站点及数据库 3 j* p3 q1 x- ~
如上图所示,进入网站==>添加站点,设置网站需要绑定的域名,创建mysql数据库,并记录数据库账号密码!进入站点目录打开终端克隆Django项目 
% m3 Y& t% @/ G/ F+ R5 k 从宝塔面板,进入网站根目录,打开终端,克隆项目!克隆项目命令 git clone https://gitee.com/qbiancheng/django-blog.git创建虚拟环境python3 -m venv venv 5 M5 \+ W, s1 v! v5 Z+ Q9 [
激活虚拟环境linux: . venv/bin/activate
9 }7 e6 l7 Z: v! t/ i8 [# T windows: venv\Scripts\activate安装依赖pip3install-rrequirements.txtlinux-ubuntu安装uwsgi * o' t. {" j" g' f! ]
对于 Python3.x 版本:uwsgi相关命令参考:sudoapt-get install python3-devsudopip3 install uwsgiDjango集成Mysql数据库1、安装mysql数据库,执行 . d0 ^- H% c/ t
pip3 install mysqlclient2、配置数据库连接在项目包下找到setting.py,基本配置如下DATABASES = {
; c1 D7 D6 Q& m' Y default: {
5 R$ M7 m( H# x' E ENGINE ' _2 \8 u, k3 g. b: y7 ^2 y( l
: django.db.backends.mysql, # 数据库驱动NAME: webdetection, # 数据库名USER: root, # 连接用户名PASSWORD ) d8 n8 Q4 Z3 M4 x
: 123456, # 连接用户密码HOST: 127.0.0.1, # 数据库所在ip地址PORT: 3306# 数据库端口: r* v8 E# L+ p
}8 w$ S2 S- Y% H" B8 g2 c
}数据库配置完成之后,去修改网站的配置文件! * ?7 Q6 z; {1 h f! |% u& B6 d
网站=>设置=>配置文件打开网站的配置文件,修改为如下内容
; \9 J% ^% ^8 }4 ` G% F% ?. P' L! [ 在项目目录创建一个deploy的文件夹,用来存放uwsgi的配置文件及日志文件! l4 {' Y: O8 {: e& c* L8 g3 V
如图所示,我们在该文件夹下分别创建一个params的文件与uwsgi.ini的文件params中的内容如下uwsgi_param QUERY_STRING $query_string;9 i. z" K, j, d# r2 _. N' [
uwsgi_param
- {2 ^7 K2 {' j REQUEST_METHOD $request_method;4 G" z9 f2 p- q/ r1 m: e$ g- Z/ X
uwsgi_param CONTENT_TYPE $content_type;
2 ?! ^+ f: x& l. r3 R uwsgi_param CONTENT_LENGTH + S! u2 c' b4 }, {
$content_length;
$ T7 [; y0 t6 T4 v3 n
6 ~7 J9 ]7 W }. k b uwsgi_param REQUEST_URI $request_uri;
& t9 U5 l3 C# }+ h! [9 ~ uwsgi_param PATH_INFO $document_uri ; n% x+ B2 y4 h, J5 ]( o
;% h+ w( B6 c# A9 ?2 i; ?% r l
uwsgi_param DOCUMENT_ROOT $document_root; J! _8 K4 u2 w3 r% P
uwsgi_param SERVER_PROTOCOL $server_protocol;" }, d8 a, T4 |5 m) d5 \" S$ K
uwsgi_param
4 f* n3 K3 Q8 n4 W% E6 X. x0 v REQUSET_SCHEME $scheme;+ j! m3 p: U: O: a% N) B) v3 X
uwsgi_param HTTPS $https if_not_empty;
$ x, T x* ]) C. e) C" n3 \1 [* O' {& Y, E# U1 a8 d. k
uwsgi_param REMOTE_ADDR
( o/ E5 T6 Q" p $remote_addr;+ u6 D) @; _- M1 j
uwsgi_param REMOTE_PORT $remote_port;
0 Y$ f% x# q; `7 ^- y, l2 a( x uwsgi_param SERVER_PORT $server_port
s/ U+ y I8 B3 B+ D2 U9 p ;
$ ?# V" v' [" x7 q( J! C uwsgi_param SERVER_NAME $server_name;这个文件中的内容我们可以不用去深究是什么意思,直接拿去用就可以了,他主要的目的就是转发非静态文件请求到uwsgi服务!
2 V6 J) X. Y' E7 y( A( K/ g uwsgi.ini文件中的内容如下#配置域应该是uwsgi,记住这个不能丢,否则会报错[uwsgi]#uwsgi监听的socket,可以为socket文件或ip地址+端口号,用nginx的时候就配socket , 直接运行的时候配 http, http-socket = 127.0.0.1:8080
. J2 x [6 v9 p: W socket = 127.0.0.1:8001#指定项目的目录,在app加载前切换到当前目录chdir = /www/wwwroot/proae.cn8 Z/ w0 P3 [/ u1 n. |! G2 y
- D8 }" L1 |: g0 z4 c5 f% Z5 P. ? # Django的wsgi文件,用来加载blog2/wsgi.py这个模块 " @ ?5 i+ y8 n/ m. k
module = mysite.wsgi# n P7 n" ~! ]$ y9 G% z1 |
# Python虚拟环境的路径home = /www/wwwroot/proae.cn/venv8 l2 @0 c/ I. { Y5 c
# master 启动主进程。 9 T$ b& K t* w( i; `# y1 G' P8 y
master = true# 最大数量的工作进程数processes = 10# 指定工作进程中的线程数threads = 2# 设置socket的权限chmod-socket = 664
8 O/ e/ ~/ B5 ~: F/ ^( f5 S # 退出的时候是否清理环境,自动移除unix Socket 和 Pid 文件vacuum = true#日志文件路径daemonize = /www/wwwroot/proae.cn/deploy/uwsgi.log1 h w! u+ j' p& j' n7 v
4 C4 q9 y8 e! N. v+ O! `& A
# pid文件pidfile = /www/wwwroot/proae.cn/deploy/uwsgi.pid每一项的配置含义均已备注,大家看备注修改为自己的即可! - }: A- z/ H1 A
专栏Django从零开发个人博客网站作者:轻编程19.9币120人已购查看启动uwsgi服务在启动uwsgi服务之前确保你的项目在开发模式已经可以正常运转,并且配置的服务器的端口处于开放状态,并且你已经对项目的静态文件进行了搜集! # ?2 j! ]. u6 | {5 ^6 Y( Q
备注:运行以下命令,必须在激活虚拟环境的情况下!启动uwsgiuwsgi --ini deploy/uwsgi.ini这个命令启动后,会在deploy的目录生成一个uwsgi.pid的文件,这里边记录了几个数字,是本项目的进程号,后边重启uwsgi及停止都运行这个文件即可!
x1 I' g1 u2 d0 D ?* Z 重启uwsgiuwsgi --reload deploy/uwsgi.pid一般在你修改了django项目的一些逻辑以及功能流程的时候都需要重启uwsgi,运行该命令即可!停止uwgiuwsgi --stop de[loy/uwsgi.pid , b; |' J# H+ v, J$ ~. K
总结无论是用宝塔还是服务器直接部署django,都逃不出配置Nginx使其正确加载静态文件,配置uwsgi,关联nginx与uwsgi这几个步骤,掌握了这几个核心步骤,无论何种方法,我们配置中设置的那几个文件均适用,部署也就变得更加容易和简单!
! n+ k* @( [4 R- A/ d% X$ [ (此处已添加圈子卡片,请到今日头条客户端查看)
3 C. @4 ]6 p7 P' i
3 W0 g- H) y/ Q/ H' V6 p- |! ~1 [- h3 }/ \( o: j
6 U |3 S; i2 [: p0 Q& w4 m4 ?, @
$ Q2 A3 y5 v/ T d1 C3 l |