目录
二、准备Ubuntu的python3环境(python3.8.3)
三.Ubuntu下安装virtualenv(为后面创建虚拟环境做准备)
1.最重要的一步就是备份,以免文件被改得运行不了,备份了之后再在副本文件上更改
前言
本文将介绍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的文章
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上,希望对你有帮助,有什么问题欢迎评论。