百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分析 > 正文

宝塔面板如何用uwsgi与nginx快速部署Django项目

liebian365 2024-10-25 15:42 17 浏览 0 评论

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

一、linux安装宝塔面板

Centos终端安装命令:

yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

Ubuntu终端安装命令:

wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh

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

二、安装Nginx以及Mysql

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


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


等待安装完成。

三、安装Python项目管理器


还是在软件商店栏目下,位于分页第三页,如上图所示,点击安装。

安装成功后,点击设置,在弹出的对话框中,注意左侧侧边栏,有一个版本管理栏目,进入后选择与项目对应的Python版本安装,如下图所示。


安装成功之后切换到项目管理栏目,点击添加项目

四、git拉取线上项目,在Python项目管理器添加项目

如果这里你没有项目,可以看看我这个专栏,有兴趣的话一起学习,可私信我,我将这个项目线上仓库推送给你用来测试。

此时你的项目就必须已经存在,可以通过git命令将线上仓库项目拉取到/www/wwwroot文件夹下,或者/home/qbc文件夹下,qbc是我的用户文件,linux所有的组成都是以文件夹的方式归类,用户也是一个文件夹。

点击映射,绑定一个域名,我这里以本地IP为例子。

之后这里会有个问题,有可能虚拟环境中的uwsgi没有安装成功,通过这一步后,我们就要去终端测试,这里我们手动进入虚拟环境去测试下。

手动进入虚拟环境安装,进入虚拟环境方法:

激活虚拟环境:在命令行输入 source 项目路径/项目名_venv/bin/activate

如我这里:source /home/qbc/coder/mysite/mysite_venv/bin/activate


我这里uwsgi已经安装成功了,如果未安装成功一般是两种错误提示未安装gcc以及python3-devel

错误一:未安装python3-devel

 *** uWSGI compiling embedded plugins ***
    [gcc -pthread] plugins/python/python_plugin.o
    In file included from plugins/python/python_plugin.c:1:
    plugins/python/uwsgi_python.h:2:10: 致命错误:Python.h:没有那个文件或目录
     #include <Python.h>
    编译中断。

解决办法:

yum install python3-devel   # centos系统安装

sudo apt install python3-dev  # ubuntu系统安装

错误二:未安装gcc

File "/tmp/pip-build-_3kmen6o/uwsgi/setup.py", line 77, in run
        conf = uc.uConf(get_profile())
      File "/tmp/pip-build-_3kmen6o/uwsgi/uwsgiconfig.py", line 750, in __init__
        raise Exception("you need a C compiler to build uWSGI")
    Exception: you need a C compiler to build uWSGI

解决办法:

yum install gcc    # centos系统安装

sudo apt-get install gcc   # ubuntu系统安装

此时可以进入虚拟环境,通过pip命令安装uwsgi

pip3 install uwsgi

uwsgi安装成功,此时可以运行同步数据库命令。

五、创建默认sqlite3数据库或者配置Mysql数据库

python3 manage.py makemigrations   # 创建迁移文件

# 创建sqlite3数据库(这里也最容易出错,一般都是版本问题引起的错误)
python3 manage.py migrate        

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


侧边栏点击数据库==>点击添加数据库,如上图所示,按照提示设置数据库用户名密码

修改项目mysite/settings.py文件的数据库配置项,如下图所示


点击左侧文件栏目,找到项目目录settings.py文件,点击编辑,将DATABASES项修改为如下所示配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mysite',   # 数据库名称
        'USER': 'mysite',       # 用户名称默认是root     
        'PASSWORD': '123456',  # 密码
        'HOST': '127.0.0.1',  # 默认
        'PORT': '3306',        # 默认
    }
}

激活虚拟环境,安装mysqlclient

pip3 install mysqlclient

这一步如果安装失败,一般是缺少mysiql-devel,安装之后再运行pip命令安装即可解决

yum install mysql-devel

必须进入项目目录,激活虚拟环境,执行同步数据库命令,

python3 manage.py migrate

六、部署静态文件

在mysite/settings.py中添加 STATIC_ROOT = '/home/qbc/coder/mysite/static/'

激活虚拟环境,进入项目文件,运行收集静态文件命令

python3 manage.py collectstatic

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

增加的代码

   location /static/ {
        alias /home/qbc/coder/mysite/static/;
    }
 
    location /media/ {
        alias /home/qbc/coder/mysite/media/;
    }


之后去到python项目管理器里边,重启项目,找到nginx,点击设置,重启即可访问。

相关推荐

4万多吨豪华游轮遇险 竟是因为这个原因……

(观察者网讯)4.7万吨豪华游轮搁浅,竟是因为油量太低?据观察者网此前报道,挪威游轮“维京天空”号上周六(23日)在挪威近海发生引擎故障搁浅。船上载有1300多人,其中28人受伤住院。经过数天的调...

“菜鸟黑客”必用兵器之“渗透测试篇二”

"菜鸟黑客"必用兵器之"渗透测试篇二"上篇文章主要针对伙伴们对"渗透测试"应该如何学习?"渗透测试"的基本流程?本篇文章继续上次的分享,接着介绍一下黑客们常用的渗透测试工具有哪些?以及用实验环境让大家...

科幻春晚丨《震动羽翼说“Hello”》两万年星间飞行,探测器对地球的最终告白

作者|藤井太洋译者|祝力新【编者按】2021年科幻春晚的最后一篇小说,来自大家喜爱的日本科幻作家藤井太洋。小说将视角放在一颗太空探测器上,延续了他一贯的浪漫风格。...

麦子陪你做作业(二):KEGG通路数据库的正确打开姿势

作者:麦子KEGG是通路数据库中最庞大的,涵盖基因组网络信息,主要注释基因的功能和调控关系。当我们选到了合适的候选分子,单变量研究也已做完,接着研究机制的时便可使用到它。你需要了解你的分子目前已有哪些...

知存科技王绍迪:突破存储墙瓶颈,详解存算一体架构优势

智东西(公众号:zhidxcom)编辑|韦世玮智东西6月5日消息,近日,在落幕不久的GTIC2021嵌入式AI创新峰会上,知存科技CEO王绍迪博士以《存算一体AI芯片:AIoT设备的算力新选择》...

每日新闻播报(September 14)_每日新闻播报英文

AnOscarstatuestandscoveredwithplasticduringpreparationsleadinguptothe87thAcademyAward...

香港新巴城巴开放实时到站数据 供科技界研发使用

中新网3月22日电据香港《明报》报道,香港特区政府致力推动智慧城市,鼓励公私营机构开放数据,以便科技界研发使用。香港运输署21日与新巴及城巴(两巴)公司签署谅解备忘录,两巴将于2019年第3季度,开...

5款不容错过的APP: Red Bull Alert,Flipagram,WifiMapper

本周有不少非常出色的app推出,鸵鸟电台做了一个小合集。亮相本周榜单的有WifiMapper's安卓版的app,其中包含了RedBull的一款新型闹钟,还有一款可爱的怪物主题益智游戏。一起来看看我...

Qt动画效果展示_qt显示图片

今天在这篇博文中,主要实践Qt动画,做一个实例来讲解Qt动画使用,其界面如下图所示(由于没有录制为gif动画图片,所以请各位下载查看效果):该程序使用应用程序单窗口,主窗口继承于QMainWindow...

如何从0到1设计实现一门自己的脚本语言

作者:dong...

三年级语文上册 仿写句子 需要的直接下载打印吧

描写秋天的好句好段1.秋天来了,山野变成了美丽的图画。苹果露出红红的脸庞,梨树挂起金黄的灯笼,高粱举起了燃烧的火把。大雁在天空一会儿写“人”字,一会儿写“一”字。2.花园里,菊花争奇斗艳,红的似火,粉...

C++|那些一看就很简洁、优雅、经典的小代码段

目录0等概率随机洗牌:1大小写转换2字符串复制...

二年级上册语文必考句子仿写,家长打印,孩子照着练

二年级上册语文必考句子仿写,家长打印,孩子照着练。具体如下:...

一年级语文上 句子专项练习(可打印)

...

亲自上阵!C++ 大佬深度“剧透”:C++26 将如何在代码生成上对抗 Rust?

...

取消回复欢迎 发表评论: