IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 全面Centos7部署django+nginx+uwsgi+mysql详细步骤 -> 正文阅读

[Python知识库]全面Centos7部署django+nginx+uwsgi+mysql详细步骤

没事写了个网站,用内网穿透玩的很是不过瘾,正巧华为云搞活动,就像把项目部署到华为云上,下面是步骤也是经历:
背景:
本人在本地写代码测试的时候,由于电脑配置实在是不行,数据库用的事sqlite3,而部署到云服务器上,我打算换成mysql,django版本为3.2,Python让我升级成了3.9。一大早上九点半就等着华为官网放出免费的服务器,抢到一个2核CPU,4G内存,40G云盘,1M带宽的上海机房的云服务器。由于本人之前只弄过win IIS,对linux只是简单了解,一路部署下来,也是云里雾里,在格式化了两次云服务器之后,总算成功了!免费的不怕,使劲折腾,操作系统随便换,真是安逸舒适!

1. 为了上线后更换数据库,我需要把本地项目的数据导出来,以便在服务器部署完成后导入mysql。
django 项目提供了一个导出的方法 python manage.py dumpdata, 不指定 appname 时默认为导出所有的app

python manage.py dumpdata [appname] > appname_data.json

执行如下代码,导出所有app数据,会自动在当前文件生成alldata.json文件

python manage.py dumpdata > alldata.json

2. 配置华为云服务器的安全组,就是开放哪些端口
在这里插入图片描述只要控制入方向就可以,如果不用win的远程登录可以把3389端口删除,其他的作为web服务器都算必须了吧。
在这里插入图片描述
3.配置SSH客户端进行远程登录。
为了在win10能操作服务器,需要下载OpenSSH,注意这是64位用的,如果不符合你得系统你可以,选择其他的下载。
链接:https://download.filezilla-project.org/client/FileZilla_3.58.0_win64_sponsored-setup.exe
顺便再下载个FileZilla,方便向服务器传输文件。
链接:https://download.filezilla-project.org/client/FileZilla_3.58.0_win64_sponsored-setup.exe
一顿无脑安装即可。
然后按下win+r组合键,win键就是ctrl和alt中间那个小窗户键,出现运行窗口输入命令cmd

在这里插入图片描述进入后输入以下命令:
root为你服务器系统的用户名,@后面为你服务器的公网IP地址,

ssh root@XXX.XX.XX.XXX

之后会提示你输入服务器的密码,完成后就进入到了服务器的命令行,开始我们的部署填坑之旅。
在这里插入图片描述
4. 在服务器上开始FTP服务,上传项目文件。
首先更新下服务器软件,时间会稍微有些长

yum update -y

让后是下面一串,说是一堆开发依赖,不知道是什么,都安排上;

 yum install gcc ; yum -y install zlib*;yum install openssl-devel -
y

安装vsftpd(very secure ftp daemon,非常安全的 FTP 守护进程)是一款运行在 Linux 操作系
统上的 FTP 服务程序,不仅完全开源而且免费,此外,还具有很高的安全性、传输速度,以
及支持虚拟用户验证等其他 FTP 服务程序不具备的特点

yum install vsftpd

安装完成后开启无脑配置模式,直接下面三条,要一条一条来哦。

mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
grep -v "#" /etc/vsftpd/vsftpd.conf_bak > /etc/vsftpd/vsftpd.conf
cat /etc/vsftpd/vsftpd.conf

为了尽量简单我们用本地用户模式配置,输入以下命令,更改配置文件,如果vim编辑器不会用,就随便找找查查吧。

vim /etc/vsftpd/vsftpd.conf

修改参数完成后如下

anonymous_ _enable=NO
local_ _enable=YES
write_ _enable=YES
local_ _umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

重点来了,这个时候ftp还是不能用的,我们还需要修改两个文件,输入以下命令编辑,在root前面加上#号注释掉,保存退出

vim /etc/vsftpd/user_list

在这里插入图片描述

vim /etc/vsftpd/ftpusers

然后启动ftp服务

systemctl restart vsftpd
systemctl enable vsftpd

然后打开我们的filezilla软件
在这里插入图片描述左边是你的本地目录,右边是服务器的目录,我们在本地找到项目文件夹,

在这里插入图片描述上传完成了,我们就可以正式开始配置服务器环境了
先来配置python,安装django及其依赖
在这里插入图片描述
版本3.68,直接上吧,首先给python换源,否则下载太慢了。

mkdir ~/.pip
vim ~/.pip/pip.conf

输入以下内容

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn 

保存退出后安装django

pip3 install django

在这里插入图片描述由于我的代码中用到pillow库,我还需要安装pillow

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow

安装uwsgi

yum install python36-devel
pip3 install uwsgi

由于数据要换成mysql,所以需要安装mysqlclient

yum install python3-devel mysql-devel
pip3 install mysqlclient

安装mysql,为了避免出现个gpg-key的错误,安装了第二条

yum install https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm 
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum install https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm 

启动mysql,并加入开机启动

systemctl start mysqld
systemctl enable mysqld

查看初始密码

grep 'temporary password' /var/log/mysqld.log

在这里插入图片描述修改mysql密码

mysql -u root -p

在这里插入图片描述输入以下命令,更改密码刷新权限

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY’新密码';`
flush privileges; 

配置django导入原数据(由于我是从sqlite3导入mysql,所以比较繁琐)
以下是我的数据库配置,数据库名为django_db,所以我需要进入mysql新建该库。

 'default': {
         'ENGINE': 'django.db.backends.mysql',
         'NAME': 'django_db',
         "USER":"root",
         "PASSWORD":"a;CXQkeyj03X",
         "HOST":"127.0.0.1",
         "PORT":"3306",
     }

在这里插入图片描述利用django命令导入原数据

python3 manage.py loaddata mysite_all.json

收集静态文件

python3 manage.py collectstatic

以上已经完成大部分的配置工作,接下来是uwsgi和nginx,接入网络服务
安装nginx

yum install nginx

把目录移动到服务器项目文件夹下,配置uwsgi.ini

[root@ecs-358280 shopsite]# vim uwsgi.ini

内容如下:

[uwsgi]
socket = 127.0.0.1:8001#监听端口,配合nginx
chdir = /home/www/shopsite#你得项目目录,basedir
wsgi-file = shopsite/wsgi.py#wsgi.py相对于上一个目录的位置
module = shopsite.wsgi#同上把/换成点
processes = 4#开启进程数
threads = 2#开启线程数
stats = 127.0.0.1:9191#不用管,貌似没有也没关系
pidfile=uwsgi.pid
daemonize=uwsgi.log
vacuum = true
log-maxsize=50000000
disable-logging=true
static-map = /static=/home/www/shopsite/static#我的静态文件地址,貌似没有也没关系

启动uwsgi
必须在项目根目录下跟uwsgi.ini同一目录执行

uwsgi uwsgi.ini

配置nginx
在这里插入图片描述在这里插入图片描述

红框部分表示,我们只要把配置文件放在conf.d目录下就可以了,建立文件

vim /conf.d/django.conf

输入以下内容,保存退出

server {
	listen 80;
	server_name  122.112.204.124;
	charset utf-8;
	client_max_body_size 75m;
	location /media {
		alias /home/www/shopsite/media;
	}
	location /static {
		alias /home/www/shopsite/static;
	}
location / {
	uwsgi_pass 127.0.0.1:8001;
	include /etc/nginx/uwsgi_params;
	}
}

保存退出后,测试配置文件,启动服务,加入开机启动

nginx -t
systemctl start nginx
systemctl enable nginx

至此已经全部配置完成,由于我没有域名,所以直接在浏览器里输入服务器公网ip,就可访问网站.实际配置途中其实有许多坑,奉劝大家如果对linux系统不熟悉,像我一样,千万不要编译安装,否则各种依赖,各种操作,真是累觉不爱.

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-26 11:26:58  更:2022-02-26 11:29:10 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:43:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码