目录
前言
一、环境版本信息
二、准备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上,希望对你有帮助,有什么问题欢迎评论。