腾讯云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 /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
的一样