腾讯云CentOS+Django+Python+Nginx+Uwsgi 部署(自用,简单记录)
说明:本人是做前端研发的,最近研究了后台Django框架,并部署到服务的整个流程,为了避免以后忘记,写一个简单的文档记录下。
第一:购买服务器
我是在腾讯云购买的最便宜,配置最低的那种,主要是以学习为主。就买了一个月的:62.5。
第二:登录到终端,安装软件
我安装也是按照网上的教程来的,俗称网络搬运工。
1:Centos 安装Python3
借鉴文章:centos7 安装python3。文章中编译安装前 先执行命令:yum install libffi-devel -y
(解决:ModuleNotFoundError: No module named '_ctypes')。我安装Python3的版本和方式略有不同:Python版本是用的:3.7.3;方式是:先下载安装文件Python-3.7.3.tgz,再安装的。
2:Centos 安装MySql
借鉴文章:centos7+django+python3+mysql+阿里云部署项目全流程。这里我只借鉴安装MySql这一部分。
我的操作流程
- 下载mysql源安装包:
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
- 安装mysql源:
yum localinstall mysql57-community-release-el7-8.noarch.rpm
- 安装mysql源:
yum install mysql-devel
- 安装MySQL(总计851M,翻墙):
yum install mysql-community-server
- 执行命令:
pip3 install mysqlclient
- 启动MYSQL服务:
systemctl start mysqld
- 查看MYSQLd的启动状态:
systemctl status mysqld
- 开机启动:
systemctl enable mysqld
- 修改root本地登录密码:
- 获取密码:
grep 'temporary password' /var/log/mysqld.log
- 进入mysql:
mysql -uroot -p
- 设置密码:
set password for 'root'@'localhost'=password('你的数据库密码');
- 创建数据库(要和你的项目数据对应上):
create database testdjango;
(可能出中文问题) - 创建数据库:
create database 数据库名 character set utf8 collate utf8_general_ci;
- 使用数据库:
use testdjango;
- 查看当前数据库:
show databases;
- 删除数据库:
drop database 数据库名;
3:PIP安装一些软件
这一步就比较简单了,就是pip安装。
我的pip安装
借鉴文章:CentOS7下部署Django+uWSGI+Nginx。这里我只借鉴pip安装这一部分。
- 执行命令:
pip3 install uwsgi
- 验证:
uwsgi --version
我的版本是:2.0.18 - 执行命令:
pip3 install django
- 验证:
django-admin help
- 执行命令:
yum install nginx
- 验证:
nginx -V
- 到这里相关软件都安装完毕了
- 执行命令:
nginx
- 用浏览器打开IP,显示 Welcome to nginx on Fedora 代表nginx启动成功了。
第三:修改对应配置文件
1:修改/etc/nginx/目录下的nginx.conf文件。 修改如下
listen 8099;
(8099是自定义端口号,你的自己设置,后边请求的时候就是用的这个端口)server_name xxx.xxx.xxx.xxx;
(腾讯云上的公网IP地址)- location /{};(大括号里添加两行:
include uwsgi_params;
uwsgi_pass 127.0.0.1:8000;
,端口号8000也是自己设置的,要和项目中uwsgi.ini中的一致) - 至此nginx就配置完毕了。
2:新建Django项目,配置uwsgi.ini 文件。
借鉴文章:uwsgi服务启动(start)停止(stop)重新装载(reload)。同时在项目根目录下,也就是和manage.py的同级目录,创建uwsgi_params文件,具体内容:Nginx。
3:启动服务
- 切换到项目更地址,执行:
uwsgi --ini uwsgi.ini
- 执行:
nginx
4:admin后台样式消失
借鉴文章:Django+Nginx+uWSGI部署到服务器admin后台样式消失
第四:总结
网上类似的教程很多,坑也不少,不过总有一款适合自己的。我也是初次接触后端的东西,遇到不少坑,大家多查查资料,多尝试下总有办法解决的。
- 远程服务器创建数据库,项目根目录下
- 执行命令:
python manage.py makemigrations
- 执行命令:
python manage.py migrate
- 开启uwsgi服务
- 执行命令:
ps -ef|grep uwsgi
- 执行:
uwsgi --ini uwsgi.ini
- 开启nginx服务
- 执行命令:
ps -ef|grep nginx
- 执行命令:
nginx
- 停止nginx服务:
pkill -9 nginx
- 注意:uwsgi下的uwsgi.pid的值要和执行命令:
ps -ef|grep uwsgi
的一样