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

宝塔面板如何用uwsgi与nginx快速部署Django项目(宝塔面板配置nginx跨域模式)

[复制链接]
我来看看 发表于 2023-03-22 00:52:09 | 显示全部楼层 |阅读模式
, V! ]6 [% z) e4 p

Django框架是一个用Python编写的非常出名的web框架,利用Django框架我们可以快速开发出项目,但对于很多不懂运营服务器的小伙伴来说,部署上线应该是遇到坑最多的一个环节,那么我们今天就来学习如何利用强大的宝塔面板来部署Django项目。

! x: w! @' a8 j5 t

一、linux安装宝塔面板Centos终端安装命令:yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6

% |; M r3 @9 `! S

.0.sh && sh install.shUbuntu终端安装命令:wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0

4 t5 }9 ?0 Y6 s) s; y% w1 B

.sh && sudo bash install.sh通过终端命令安装成功后,可以通过IP+8888端口号来访问登入宝塔后台,注意在终端安装成功最后会出现默认的用户名和密码以及登录后台地址,注意记录保存,登入后可以修改宝塔面板的登录端口、账号以及密码。

4 L# W2 W- m& |* M q

二、安装Nginx以及Mysql成功登入宝塔面板后,点击侧边栏软件商店栏目,在第一页的下方找到Nginx与Mysql点击安装,如下图所示:

+ Y! h& J- v$ _- Z7 u

安装Nginx与Mysql在安装Mysql的时候一定要注意版本问题,Django最新版已经不支持5.5以下版本,我们安装的时候可以选择安装5.6或者5.7版本。

5 e1 l2 R: m1 Y) d$ I# D

安装Mysql5.7等待安装完成。三、安装Python项目管理器

, E D3 M0 u9 u; E

安装Python项目管理器还是在软件商店栏目下,位于分页第三页,如上图所示,点击安装安装成功后,点击设置,在弹出的对话框中,注意左侧侧边栏,有一个版本管理栏目,进入后选择与项目对应的Python版本安装,如下图所示。

2 U1 ~6 y, Q$ K, J, V; Q

安装Python安装成功之后切换到项目管理栏目,点击添加项目四、git拉取线上项目,在Python项目管理器添加项目

; M: X3 @$ B1 L0 r. t1 W8 g

专栏Django从零开发个人博客网站作者:轻编程19.9币109人已购查看如果这里你没有项目,可以看看我这个专栏,有兴趣的话一起学习,可私信我,我将这个项目线上仓库推送给你用来测试此时你的项目就必须已经存在,可以通过git命令将线上仓库项目拉取到/www/wwwroot文件夹下,或者/home/qbc文件夹下,qbc是我的用户文件,linux所有的组成都是以文件夹的方式归类,用户也是一个文件夹。

; j5 M' @/ t0 Y. a

按照要求选择对应的版本及文件夹

0 G( @- \& h9 i6 K- J

映射域名点击映射,绑定一个域名,我这里以本地IP为例子之后这里会有个问题,有可能虚拟环境中的uwsgi没有安装成功,通过这一步后,我们就要去终端测试,这里我们手动进入虚拟环境去测试下手动进入虚拟环境安装,进入虚拟环境方法:。

: \7 c, X- H4 m

激活虚拟环境:在命令行输入 source 项目路径/项目名_venv/bin/activate 如我这里:source /home/qbc/coder/mysite/mysite_venv/bin/activate

) {6 h' p: j! m6 o/ u) M# G

终端测试uwsgi我这里uwsgi已经安装成功了,如果未安装成功一般是两种错误提示未安装gcc以及python3-devel错误一:未安装python3-devel *** uWSGI compiling embedded plugins *** 4 S# K1 G/ e n$ v. o6 @ [gcc -pthread] plugins/python/python_plugin.o 2 y9 s6 ]0 C: v* S4 z In file included from plugins/python/python_plugin.c:

# E$ Y' }/ R! ^) L# ~; A4 m

1:% \8 g. p6 n5 {2 L/ @* Y plugins/python/uwsgi_python.h:2:10: 致命错误:Python.h:没有那个文件或目录$ E' X# T8 W+ R# N, S* ^ #include 5 J: X$ b K5 W& C4 o* k9 S9 d8 r 编译中断解决办法:

5 b [$ G; [# v" e2 H

yum install python3-devel # centos系统安装 u& t( J4 a6 h ' O7 {9 L9 `; p' b8 @" x3 S sudo apt install python3-dev # ubuntu系统安装错误二:未安装gccFile "/tmp/pip-build-_3kmen6o/uwsgi/setup.py"

Z' _9 ^9 ~; @: K

, line 77, in run5 C# I! s2 o- J$ V/ W conf = uc.uConf(get_profile()) J; r/ x( ?9 C File "/tmp/pip-build-_3kmen6o/uwsgi/uwsgiconfig.py"

r2 O1 H3 O0 p2 V

, line 750, in __init__ ) v- f9 T" A8 Y$ X0 o8 [- C& Y& s raise Exception("you need a C compiler to build uWSGI") : C) m: s! A4 x6 j5 s# B! a" R Exception

" r6 C5 `& U- R- J( v6 G& T( t8 K

: you need a C compiler to build uWSGI解决办法:yum install gcc # centos系统安装3 E7 F. ~) }5 G: D8 C ; }, n0 s! n3 ^6 _. r sudo apt-getinstall gcc

8 u' r' w( ^ U0 u9 J

# ubuntu系统安装此时可以进入虚拟环境,通过pip命令安装uwsgipip3 install uwsgiuwsgi安装成功,此时可以运行同步数据库命令五、创建默认sqlite3数据库或者配置Mysql数据库。

! P* `' l5 a' z

python3 manage.py makemigrations # 创建迁移文件# 创建sqlite3数据库(这里也最容易出错,一般都是版本问题引起的错误)' J7 d2 s5 i6 _1 Q python3 manage.py migrate

- v" j( c9 N& n/ h# `* |

如果这里操作这两步出现错误问题,那么我们的项目肯定是没办法运行起来的,此时我的做法是直接改用Mysql数据库,还记得刚开始我们已经安装了数据库吗?

0 r$ D* r$ ^( Y% ^; H6 O; b; K

创建Mysql数据库侧边栏点击数据库==>点击添加数据库,如上图所示,按照提示设置数据库用户名密码。修改项目mysite/settings.py文件的数据库配置项,如下图所示

+ b/ Y3 ?6 I- |4 L! s

修改mysite/settings.py数据库配置项点击左侧文件栏目,找到项目目录settings.py文件,点击编辑,将DATABASES项修改为如下所示配置DATABASES = { x/ `+ j1 Z7 _ B default

; c; f5 S1 ?9 } c) D8 \, b

: {8 n( F& p/ K, O ENGINE: django.db.backends.mysql,% D. ]% [; E% E8 v* e! N0 ]/ w NAME: mysite, # 数据库名称USER: mysite, # 用户名称默认是root

: \ `: m+ e2 P2 h, g

PASSWORD: 123456, # 密码HOST: 127.0.0.1, # 默认PORT: 3306, # 默认 , C+ D" r+ v7 X, x f# N } . `: [4 q8 k" \; U* l$ f$ v }激活虚拟环境,安装mysqlclientpip3 install mysqlclient

8 m1 r# e1 ?* U; T2 R6 T% d

这一步如果安装失败,一般是缺少mysiql-devel,安装之后再运行pip命令安装即可解决yum install mysql-devel必须进入项目目录,激活虚拟环境,执行同步数据库命令,python3

% S9 w9 e; N) e# ?4 _* e

manage.pymigrate六、部署静态文件在mysite/settings.py中添加 STATIC_ROOT = /home/qbc/coder/mysite/static/激活虚拟环境,进入项目文件,运行收集静态文件命令

' c, [& } K: }& ?6 W

python3manage.pycollectstatic进入/www/server/panel/vhost/nginx文件夹,找到映射域名.conf文件,点击编辑,增加静态文件路径,如下图所示:增加的代码

! O1 ^! q& d# ~# |

location /static/ { ) d! f$ g5 p/ r9 ?& J' V" ~! x3 e9 E6 f alias /home/qbc/coder/mysite/static/;0 K5 Y2 T2 |5 s4 G( b8 Y& U }6 a# _# V4 `3 O* _6 y5 _3 H0 g ' }/ K# p( D" `4 _4 @! j location /media/ {% `5 i3 l3 m2 }) \/ t! N! V$ Y( ` alias

4 N/ s$ t b2 Y& N. s

/home/qbc/coder/mysite/media/; - o5 U, x1 O1 Y- I5 f; C& U" H }

& k# {& Q6 `2 G6 C

文件栏目,增加静态文件路径之后去到python项目管理器里边,重启项目,找到nginx,点击设置,重启即可访问。

4 O4 h1 G' e( D( {# [- `* J- N' |/ L' K$ C K5 O# m5 t5 W' j, c # R. q( l5 F G% W1 I" l( L! i7 a

暂时无法加载帖子列表

回复

使用道具 举报

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

    本版积分规则

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

    GMT+8, 2026-10-1 07:51 , Processed in 0.056429 second(s), 24 queries , Gzip On.

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

    Powered by Discuz! X3.5

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