腾讯云Ubuntu部署Django(Django + uwsgi +nginx + MySQL)

2023-10-27

目录

前言

一、环境版本信息

二、准备Ubuntu的python3环境(python3.8.3)

1.安装编译环境

2.下载Python源码

3.解压

 4.配置安装选项

 5.编译,安装

 6.设置软连接

 三.Ubuntu下安装virtualenv(为后面创建虚拟环境做准备)

1.安装virtualenv

2.安装virtualenvwrapper 

3.创建虚拟环境的目录

4.配置virtualenvwrapper

5.使其生效

6.创建虚拟环境

7.下载需要的python包

 8.进入虚拟环境操作

四.更改django项目文件部分内容再上传到云服务器中

1.最重要的一步就是备份,以免文件被改得运行不了,备份了之后再在副本文件上更改

2.删除数据库的迁移记录以及更改数据库用户名以及密码

3.上传到云服务器

五.数据库搭建以及数据库迁移

1.数据库搭建参考我上一篇MySQL的文章

2.数据库迁移

 3.导出Windows数据库并导入linux数据库

六.安装与配置uWSGI

1.安装

2.uwsgi配置部署、

3.启动uwsgi

4.关闭uwsgi

 5.查看uwsgi的运行状态

七.安装与配置nginx

 1.安装

 2.配置nginx 

3.启动nginx

4.查看运行状态

5.停止运行

6.重新启动

八.访问


前言

本文将介绍django + uwsgi + nginx + mysql如何部署在腾讯云Ubuntu


一、环境版本信息

Python 3.8.3

腾讯云Ubuntu18.04

Django 2.2.12

uwsgi 2.0.21

nginx 1.20

mysql 8.0

二、准备Ubuntu的python3环境(python3.8.3)

1.安装编译环境

更新源的软件列表

apt-get update
apt-get install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libexpat1-dev liblzma-dev libffi-dev libc6-dev

2.下载Python源码

阿里镜像下载

wget https://cdn.npm.taobao.org/dist/python/3.8.3/Python-3.8.3.tgz

3.解压

tar -xzf Python-3.8.3.tgz

 4.配置安装选项

先进入上一步解压出来的 Python 源码文件夹:

cd Python-3.8.3

如果想快速安装,只配置安装位置即可。

例如,我要把 Python3.8.3 安装在这个目录下:/usr/local/python3.8

./configure --prefix=/usr/local/python3.8

 5.编译,安装

make
make install

 6.设置软连接

ln -s /usr/local/python3.8/bin/python3.8 /usr/bin/python3.8
ln -s /usr/local/python3.8/bin/python3.8-config /usr/bin/python3.8-config

 三.Ubuntu下安装virtualenv(为后面创建虚拟环境做准备)

1.安装virtualenv

pip install virtualenv

2.安装virtualenvwrapper 

pip install virtualenvwrapper

3.创建虚拟环境的目录

虚拟环境都放置在该目录下

mkdir ~/.virtualenvs

4.配置virtualenvwrapper

vim ~/.bashrc
# 打开文件后在文件最下方增加如下代码export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

export WORKON_HOME=$HOME/.virtualenvs

source /usr/local/bin/virtualenvwrapper.sh

5.使其生效

source ~/.bashrc

6.创建虚拟环境

mkvirtualenv 虚拟环境名称(自定义就可以) -p python3

7.下载需要的python包

.这里使用的是清华镜像,下载你项目所需要的包就行

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ django==2.2.12
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pymysql
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ mysqlclient
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pillow
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ beautifulsoup4

 8.进入虚拟环境操作

workon 虚拟环境名字

 括号里面就是虚拟环境,就代表你在这个虚拟环境下操作了

 

四.更改django项目文件部分内容再上传到云服务器中

1.最重要的一步就是备份,以免文件被改得运行不了,备份了之后再在副本文件上更改

2.删除数据库的迁移记录以及更改数据库用户名以及密码

3.上传到云服务器

我用的是WinSCP,filezilla也可以

 

五.数据库搭建以及数据库迁移

1.数据库搭建参考我上一篇MySQL的文章

ubuntu18.04安装与配置MySQL

2.数据库迁移

这一步是在数据库中把表建好

跟在django的终端操作一样,在项目的根目录下输入

python manage.py makemigrations
python manage.py migrate

 3.导出Windows数据库并导入linux数据库

 我用的是sqlyog这款软件

直接去sqlyog中导出就好了

 

点击导出

 复制全部内容,进入在linux下创建的数据库

mysql -uroot -p
输入密码
use 数据库名称

然后粘贴你刚刚复制的内容,他就导入完成了

六.安装与配置uWSGI

1.安装

pip install uwsgi

2.uwsgi配置部署、

创建delop文件

delop下面创建logs用于存放日志,创建uwsgi_conf.ini

以下是uwsgi_conf.ini的配置内容

 注意socket后面要写127.0.0.1不要写公网ip,不然uwsgi启动不起来端口号随便写就行,但是要与之后的nginx的一样

虚拟环境的地址用which python来查找

which python

写到虚拟环境的那个名称的目录的路径即可

配置完uwsgi之后将delop文件夹放在项目的根目录下

3.启动uwsgi

uwsgi --ini uwsgi_conf.ini &

注意此处启动uwsgi要到delop下面去执行

4.关闭uwsgi

uwsgi --stop uwsgi.pid

 5.查看uwsgi的运行状态

ps aux|grep uwsgi

 6.uswgi杀死进程

 pkill -f uwsgi -9

 这样就代表启动成功

如果只一项的话,可以去delop下的logs下的uwsgi.log查看日志,看看是哪里报错了。

七.安装与配置nginx

 1.安装

sudo apt install nginx

 2.配置nginx 

http:表示所有的http请求的处理

server:监听端口

location:匹配请求路径,转到响应的处理

在delop文件夹下创建nginx_conf.conf

vim nginx_conf.conf

写入以下内容

upstream bbs{
    server 127.0.0.1:8000;
}
server{
# 监听端口
listen 80;
server_name 公网ip地址;
# 编码
charset utf-8;

# 文件最大上传大小
client_max_body_size 75M;

# 媒体文件
location /media{
    alias /home/ubuntu/bbs/test1/media;
}

# 静态文件
location /static{
    alias /home/ubuntu/bbs/test1/static;
}

# 主目录
location /{
    uwsgi_pass bbs;
include /etc/nginx/uwsgi_params;
}
}

将配置文件移动到/etc/nginx/conf.d/nginx_conf.conf

mv nginx_conf.conf /etc/nginx/conf.d/nginx_conf.conf

修改nginx.conf第一行开头需修改用户,将www-data修改成root,用root启动,有权限,不用担心权限报错的问题

3.启动nginx

sudo systemctl start nginx

4.查看运行状态

sudo systemctl status nginx

 

 这样就是运行成功

5.停止运行

sudo systemctl stop nginx

6.重新启动

sudo systemctl restart nginx

尽量不要重新启动,先停止后启动,不然容易报错

八.访问

公网ip:80 + url

一般是80端口,apech nginx这类web服务器一般都是80端口


总结

这里对文章进行总结:
本文简单介绍了django + uwsgi + nginx + mysql部署在腾讯云Ubuntu上,希望对你有帮助,有什么问题欢迎评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

腾讯云Ubuntu部署Django(Django + uwsgi +nginx + MySQL) 的相关文章

随机推荐

  • Testing the CATCHER

    http poj org problem id 1887Description A military contractor for the Department of Defense has just completed a series
  • ide 安装eval reset插件

    1 安装eval reset的目的 Jetbrains家的产品有一个很良心的地方 他会允许你试用30天 这个数字写死在代码里了 以评估是否你真的需要为它而付费 事实上有一款插件可以实现这个功能 你或许可以用它来重置一下试用时间 但切记不要无
  • openGL之API学习(五十七)法线贴图、色彩贴图、高光贴图

    Normal map Normal map 法线贴图 它的作用是模拟出高模上的一些细节纹理 特别是将高模上的圆滑和粗糙度投射到低模上 让低模也有高模的效果 因为高模的面数非常多 导入引擎后电脑是跑不动的 所以用低模加上法线贴图就能很好的解决
  • Golang 结构化日志包 log/slog 详解(二):Handler

    上一篇文章介绍了推出 log slog 包的背景 log slog 包的简单介绍和使用 简单使用了 Info 函数 例如 package main import log slog func main slog Info hello 标题 路
  • 深入理解搜索引擎优化(SEO)

    深入理解搜索引擎优化 深入理解搜索引擎优化 SEO 1 SEO基础入门 SEO概述 搜索引擎 营销策略 SEO查询工具与站长平台 收录与权重 2 SEO站内优化 关键词 域名 主机 程序与SEO 设计技巧及优化 标签优化技巧 TDK 页面关
  • 三层交换机实现VLAN间通信配置实验(交换机/路由器配置与管理任务教程)网络设备管理

    三层交换机实现VLAN间通信配置实验 1 首先我在这里分享思科模拟器 中文版 和这次实验的参考文件里面有我自己配置和详细的描述讲解 有需要的同学可以自己下载 链接 https pan baidu com s 1y8He1E5RJKLkV l
  • 虚拟机 系统镜像 下载地址

    1 最完整的系统镜像 为了装个虚拟机 也跳了很多坑 感觉骗子都学会上网了 几次被整懵圈 坚决不要下载第三方的杂七杂八的系统镜像 不能使用都罢了 一旦使用 好像他们祖祖辈辈都被暗暗的安装到了系统中 全部为放心使用版本 良心推荐 http ww
  • 小白入门C#编写MVC登录小案例

    一 C 编写MVC登录小案例 1 新建MVC项目 2 在Models文件夹下创建一个User类 包含登录所需要的用户名和密码属性 namespace MvcLogin Models public class User public stri
  • Python深度学习篇四《机器学习基础》

    前言 前期回顾 Python深度学习篇三 神经网络入门 上面这篇里面写了关于向量数据最常见的机器学习任务 好 接下来切入正题 本章包括以下内容 除分类和回归之外的机器学习形式 评估机器学习模型的规范流程 为深度学习准备数据 特征工程 解决过
  • 「AI初识境」深度学习中常用的损失函数有哪些?

    https www toutiao com a6695152940425937411 这是专栏 AI初识境 的第11篇文章 所谓初识 就是对相关技术有基本了解 掌握了基本的使用方法 今天来说说深度学习中常见的损失函数 loss 覆盖分类 回
  • 代码审查清单

    代码审查清单 常规项 代码能够工作么 它有没有实现预期的功能 逻辑是否正确等 所有的代码是否简单易懂 代码符合你所遵循的编程规范么 这通常包括大括号的位置 变量名和函数名 行的长度 缩进 格式和注释 是否存在多余的或是重复的代码 代码是否尽
  • 在开发中,我们需要对后端返回来的数据进行转型,后端返回的字符串类型,布尔类型,进行使用

    后端返回 num 12 598 num2 11 222 这种字符串的数字 在前端需要根据这个数字来做一些判断的时候 直接 if num gt num2 console log 方法 这样子操作 很明显是不可以的 所以我们需要进行转换数据类型
  • wsl ubuntu拒绝访问_用WSL轻松实现WinLinux双系统

    在很多的情况下 我们对Linux具有不可替代的需求 但Ps Pr等工具的适用场景也使得我们不能抛弃Windows 面对此种情状 大部分人要么会选择使用虚拟机 要么则会选择双系统 但事实上 过于臃肿的虚拟机系统会使得硬件资源的占用率非常高 进
  • personal Richard photo picture

  • 更新Android studio后 sdk没有tools目录,无法使用device monitor

    谷歌在较新版本的android studio内去除了DDMS的支持 用其他功能代替 而日常开发测试中 Device Monitor的应用还是非常方便的 那么 问题来了 如何继续使用DDMS这款调试神器 如何在谷歌已经弃用的情况下 重新安装a
  • ES6入门八:Promise异步编程与模拟实现源码

    Promise的基本使用入门 实例化promise对象与注册回调 宏任务与微任务的执行顺序 then方法的链式调用与抛出错误 throw new Error 链式调用的返回值与传值 Promise的基本使用进阶 then catch fin
  • 查询oracle数据库里的表空间利用率

    select a tablespace name round a total size total size MB round a total size round b free size 3 used size MB round b fr
  • @RequestBody与@ResponseBody的区别以及@PathVariable的用法

    一 RequestBody RequestBody的作用是将前端传来的json格式的数据转为自己定义好的javabean对象 前端向后端传递数据 图中以json数据为例 需要注意的是传入数据的属性名称要和后端javabean中定义的一致 注
  • 多层网络的反向传播算法

    目录 一 可微阈值单元 二 多层网络的反向传播算法 1 反向传播算法推导 2 两层sigmoid单元网络训练算法的表示 3 任意深度层次有向无环网络训练算法的表示 三 小结 在 感知器的数学表达和训练算法一节中 重点学习了ANN系统中单个单
  • 腾讯云Ubuntu部署Django(Django + uwsgi +nginx + MySQL)

    目录 前言 一 环境版本信息 二 准备Ubuntu的python3环境 python3 8 3 1 安装编译环境 2 下载Python源码 3 解压 4 配置安装选项 5 编译 安装 6 设置软连接 三 Ubuntu下安装virtualen