zoukankan      html  css  js  c++  java
  • 宝塔面板如何用uwsgi与nginx快速部署Django项目

    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点击安装,如下图所示:

    安装Nginx与Mysql

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

    安装Mysql5.7

    等待安装完成。

    三、安装Python项目管理器
     

    安装Python项目管理器

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

    安装成功后,点击设置,在弹出的对话框中,注意左侧侧边栏,有一个版本管理栏目,进入后选择与项目对应的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

    我这里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数据库,还记得刚开始我们已经安装了数据库吗?

    创建Mysql数据库

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

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

    修改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,点击设置,重启即可访问。
    ————————————————
    版权声明:本文为CSDN博主「贝湾云」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/weixin_41861301/article/details/105843823

    本博2017年4月开始自学,到20年2月已自学3年,不仅仅python,目前已经全栈WEB开发,全自动A股交易,深度学习也初步涉猎,这句话改于2020年2月16日。计划学习10年,40岁学成精英,如若不到,继续学习,终身保持学习状态。30岁之前看不惯社会天天抱怨,30岁突然醒悟,错全在自己身上,跟社会没有任何关系,故开始随时保持学习状态,向梦想冲刺。
  • 相关阅读:
    java 爬虫 爬取豆瓣 请不要害羞 图片
    Intellij idea 基本配置
    Linux 基本操作
    Java 快速排序
    Codeforces 986D Perfect Encoding FFT
    Codeforces 749E Gosha is hunting 二分+DP
    BZOJ5305 [Haoi2018]苹果树
    Codeforces 666E Forensic Examination SAM+权值线段树
    BZOJ3712[PA2014]Fiolki 建图+倍增lca
    Codeforces 576D Flights for Regular Customers 矩阵快速幂+DP
  • 原文地址:https://www.cnblogs.com/hushuning/p/14837632.html
Copyright © 2011-2022 走看看