上线架构图、阿里云、云服务器安装mysql、云服务器安装redis、云服务器安装python、安装uwsgi、安装虚拟环境、安装nginx、路飞前端后端部署、路飞后台管理样式处理

上节回顾

# 1 文件存储
    -之前上传到服务器,放到media文件夹下
    -使用文件服务器托管文件
        -1 第三方托管
            -阿里云oss
            -腾讯云
            -七牛云
        -2 基于开源文件服务器自己搭建
            -fastdsf---》中小文件
            -minio
            -go-fastdsf:是一个基于http协议的分布式文件系统,它基于大道至简的设计理念,一切从简设计,使得它的运维及扩展变得更加简单,它具有高性能、高可靠、无中心、免维护等优点

            
# 2 搜索功能
    -前端Header.vue   搜索框
    -搜接口:结果:实战课,轻课,免费----》分布式全文检索引擎
    -前端搜索结果页面
 
# 3 支付宝支付
    -商户:我们系统---》申请商户号,营业执照
        -沙箱环境:测试商户号
    -买家:测试买家
    -支付流程
        -用户在我们系统中点击立即购买-----》我们后端生成支付链接----》返回给前端---》打开这个地址(支付宝付款页面)----》用户扫码/输入账号密码付款----》支付宝收到用户付的款---》用户付到支付宝商户上----》支付宝会有前端回调(get回调)---》掉回到我们的页面(配置的)---》我们做了个付款成功的页面---》后台写了两个支付回调接口(get自己用,post支付宝用:验证签名)
        
    -使用第三方sdk
    -封装了包
        -__init__
        -settings.py
        -pay.py
        -pem
            -支付宝公钥
            -咱们私钥
            
# 4 订单板块表结构
    -Order
    -OrderDetail
    
    
# 5 下单接口
    -前端传入的数据---》{courses:[1,],total_amount:99,subject:订单标题}
    -后端:
        1 取出所有课程---》
        2 计算订单总价格,跟传入的比较
        3 取出当前登录用户---》Order表中有谁购买的
            request.user中取
        4 生成订单号:uuid
        5 生成支付链接,放到context中
        6 入口前准备:user放到attrs中,订单号放到attrs中
		
        7 生成订单---》存入Order和OrderDetail表
        
        
# 6 前端支付
    -open
    -付款成功页面
    
# 7 两个回调
    -get
    -post:支付宝用的,回调不到我们目前的项目的

# 自研

今日内容

  • 上线架构图

  • 阿里云购买

  • 云服务器安装mysql

  • 云服务器安装redis(源码安装)

  • 云服务器安装python3.8(源码安装)

  • 安装uwsgi

  • 安装虚拟环境

  • 安装nginx(源码安装)

  • 路飞前端部署

  • 路飞后端部署

  • 路飞后台管理样式处理

  • 补充

1 上线架构图

# 服务器,公网ip地址
	-云服务器:阿里云,腾讯云
# 上线架构图

上线图

2 阿里云购买

# 购买阿里云服务器
	-阿里云官网,点选购买
    
# ssh客户端
	-xshell
    -finalshell:http://www.hostbuf.com/t/988.html
    -Bash命令

配置以下服务器,装一些常用依赖

# 更新yum工具
yum update -y
# 装了一堆开发用的工具,git
yum -y groupinstall "Development tools" 
# 安装一些可能会用到的工具
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel -y

3 云服务器安装mysql

3.1 前往用户根目录

# 回到家目录/root
cd ~

3.2 下载mysql57

这个版本不需要别的操作只需跟着步骤来就行了

wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

3.3 安装

# 安装rpm包
yum -y install mysql57-community-release-el7-10.noarch.rpm
# 真正安装上面选择完毕后这个直接执行
yum install mysql-community-server

# --nogpgcheck是不需要密钥的意思 如果上面的报错用下面这个命令
yum install mysql-community-server --nogpgcheck -y

3.4 启动mysql57并查看启动状态

启动mysql

systemctl start mysqld.service

查看mysql启动状态

systemctl status mysqld.service

image-20230315210915835

查看默认密码并登录

grep "password" /var/log/mysqld.log

# 密码  !<qGQ?#KC8>j

image-20230315211042924

登录

mysql -uroot -p

# 密码  !<qGQ?#KC8>j

image-20230315211237079

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Lqz12345?';

4 云服务器安装redis(源码安装)

4.1 前往用户根目录

cd ~

4.2 下载redis-5.0.5

wget http://download.redis.io/releases/redis-5.0.5.tar.gz

4.3 解压安装包

tar -xf redis-5.0.5.tar.gz

4.4 进入目标文件

cd redis-5.0.5

4.5 编译环境

# 在src路径下会有可执行文件:redis-server redis-cli

make

4.6 复制环境到指定路径完成安装

cp -r ~/redis-5.0.5 /usr/local/redis

4.7 配置redis可以后台启动:修改下方内容

vim /usr/local/redis/redis.conf

daemonize yes

image-20230315213759510

完成配置

esc
:wq
回车

4.8 建立软链接

建立软链接(因为/usr/local/redis/src)没有加到环境变量

# /usr/bin/ 在环境变量中,所以以后直接敲redis-server就能找到了

ln -s /usr/local/redis/src/redis-server /usr/bin/redis-server


ln -s /usr/local/redis/src/redis-cli /usr/bin/redis-cli

4.9 后台运行redis

cd /usr/local/redis

redis-server ./redis.conf &

4.10 查看是否正常运行

ps aux |grep redis

4.11 测试redis环境

redis-cli

image-20230315215208578

4.12 关闭redis服务

pkill -f redis -9

5 云服务器安装python3.9(源码安装)

linux mac 系统服务是用python写的python2写所以系统中默认带了python2

阿里云的centos自动装了python3.6

云服务器上有python2和python3.6

自己装python3.9

centos快速安装 yum install python 可以快速安装,但是不能指定版本,不能指定安装目录

源码安装 下载指定版本的源码,编译安装

所以linux和mac都自带python2:系统服务,用的python2写的

阿里云的centos默认安装了python3.6

python2 python3.6 python3.9

5.1 源码安装python,依赖一些第三方zlib* libffi-devel

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel zlib* libffi-devel  -y

5.2 前往用户根目录

cd ~

5.3 下载或上传python3.9 到服务器终端

wget https://registry.npmmirror.com/-/binary/python/3.9.0/Python-3.9.0.tgz

5.4 解压安装包

tar -xf Python-3.9.0.tgz

5.5 进入目标文件

cd Python-3.9.0

5.6 编译安装

配置安装路径:/usr/local/python3

把python3.9.0 编译安装到/usr/local/python39路径下

./configure --prefix=/usr/local/python39

编译安装如果报错,说明缺依赖

# 如果上面那条命令报错执行这条

yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel psmisc libffi-devel zlib* libffi-devel  -y
# 如果没有报错则执行下条

make &&  make install

5.7 建立软链接

建立软链接/usr/local/python38路径不在环境变量,终端命令 python3,pip3

把/usr/local/python39/bin加入到环境变量

ln -s /usr/local/python39/bin/python3 /usr/bin/python3.9

ln -s /usr/local/python39/bin/pip3 /usr/bin/pip3.9

机器上有多个python和pip命令对应关系如下

python       2.x      
python3      3.6      pip3
python3.9    3.9      pip3.9

5.8 删除安装包与文件

rm -rf Python-3.9.0
rm -rf Python-3.9.0.tar.xz

6 安装uwsgi

django flask项目上线,需要使用uwsgi部署,性能高,符合wsgi协议的web服务器

使用uwsgi运行django,不在使用测试阶段的wsgiref来运行dajngo了

uwsgi是符合wsgi协议的web服务器,使用c写的性能高,上线要使用uwsgi

6.1 在真实环境安装

pip3.9 install uwsgi

安装到了python39的安装路径的bin路径下了

image-20230316213321617

6.2 建立软连接

ln -s /usr/local/python39/bin/uwsgi /usr/bin/uwsgi

image-20230316214358163

7 安装虚拟环境

7.1 安装前先更新一下pip 与setuptools pbr 减少安装模块错误

# 升级pip版本
python3.9 -m pip install --upgrade pip    

#升级setuptools
python3.9 -m pip install --upgrade setuptools

pip3.9 install pbr

7.2 安装依赖

pip3.9 install virtualenv


pip3.9 install virtualenvwrapper

7.3 建立虚拟环境软连接

ln -s /usr/local/python39/bin/virtualenv /usr/bin/virtualenv

7.4 配置虚拟环境:填入下方内容

# ~/ 表示用户家路径:root用户,就是在/root/.bash_profile

# 进环境变量
vim ~/.bash_profile

# 加上这条命令
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.9
source /usr/local/python39/bin/virtualenvwrapper.sh

退出编辑并保存

esc
:wq

7.5 更新配置文件内容

source ~/.bash_profile

image-20230316221023881

虚拟环境默认环境目录 ~/.virtualenvs

7.6 创建虚拟环境

mkvirtualenv -p python3.9 luffy

image-20230316221301918

# 退出虚拟环境
deactivate
# 查看虚拟环境
workon
# 进入虚拟环境
workon 虚拟环境名

image-20230316221434652

8 安装nginx(源码安装)

# nginx:软件网关软件
	-Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器  ,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点
    -运行在服务器上,监听某个端口,可以向这个服务器发送http请求了
    
    -转发http请求,代理静态文件,负载均衡

8.1 安装nginx

前往用户根目录

cd ~

下载nginx1.13.7

wget http://nginx.org/download/nginx-1.13.7.tar.gz

解压安装包

tar -xf nginx-1.13.7.tar.gz

进入目标文件

cd nginx-1.13.7

配置安装路径:/usr/local/nginx

./configure --prefix=/usr/local/nginx

编译并安装

make && sudo make install

建立软连接

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

终端命令 nginx 启动

删除安装包与文件

cd ~

rm -rf nginx-1.13.7

rm -rf nginx-1.13.7.tar.xz

测试Nginx环境,服务器运行Nginx,本地访问服务器ip

nginx

服务器绑定的域名 或 ip:80

image-20230316224453918

无法访问时记得查看服务器防护墙是否在开启着,如果在开启着需要关闭才能访问

1、命令行界面输入命令
systemctl status firewalld.service
并按下回车键。

2、然后在下方可度以查看得到“active(running)”,此时说明防火墙已经被打开了。

3、在命令行中输入
systemctl stop firewalld.service
命令,进行关闭防火墙。

4、然后再使用命令
systemctl status firewalld.service
在下方出现disavtive(dead),这权样就说明防火墙已经关闭。

5、再在命令行中输入命令
systemctl disable firewalld.service
命令,即可永久关闭防火墙。

9 路飞前端部署

把vue项目编译成存粹的静态文件,把ajax远程链接的地址改成服务器的地址

settings.js

export default {
    BASE_URL:'http://47.104.229.47:8000/api/v1'
}

image-20230316225458364

9.1 编译前端

npm run build

image-20230316230256385编译后打包成zip压缩包,传到云服务上去

9.2 在云服务器上安装上传下载的软件

yum install unzip -y

rz  选择上传就行

9.3 解压 zip

yum install unzip -y


unzip dist.zip

9.4 修改Nginx配置文件,实现代理路飞前端

来到Nginx安装目录的conf路径下

cd /usr/local/nginx/conf/

mv nginx.conf nginx.conf.bak

vim nginx.conf  #写入
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    server {
        listen 80;
        server_name  127.0.0.1; # 改为自己的域名,没域名修改为127.0.0.1:80
        charset utf-8;
        location / {
            root /home/html; # html访问路径
            index index.html; # html文件名称
            try_files $uri $uri/ /index.html; # 解决单页面应用刷新404问题
        }
    }
} 

image-20230314204505441

把dist下所有内容 cp 到/home/html 注意路径

cp -r dist /home/html

重启nginx

ginx -s reload

访问自己云服务器ip就能看到前端页面了

image-20230316233446085

http://自己的云服务器ip/

10 路飞后端部署

posted @ 2023-04-11 15:30  Super小赵  阅读(28)  评论(0编辑  收藏  举报
****************************************** 页脚Html代码 ******************************************