1.crm项目部署回顾(小BOSS)css
crm部署 nginx+uwsgi+django+mysqlhtml
nginx 前端前端
uwsgi+django 后端vue
mysql 数据支撑node
crm是一个单体的应用,前端代码和后端代码,融合在了一块儿.这种须要会布置python
linux默认终端有7个mysql
按住ctrl + alt 从 f1-f7是7个终端 f1是图形化终端,f2-f7是黑屏
咱们用的是xshell远程链接,链接到linux,能够有N个终端jquery
咱们从新登陆服务器,linux
注意.docker不要随便停人家的服务,这很危险.nginx
写代码,提供服务才是产品,才可以赚钱.linux命令必定要学熟
领导给了服务器帐户和密码,要登陆服务器,看进程,看端口,看具体跑了什么东西,才能明白服务器的做用
3306是一台服务器.ps -ef nginx表明web服务器的服务器
nginx web server 学名是服务器,也就是linux用的web软件
命令看下ps -ef
每一个任务对应一个窗口,
web ` 对应80
django 对应8000
数据库 3306
若是端口改变了,咱们须要认识后边的Program name
老师想要尽量这个过程当中发生了什么,从无到有.
如何快速的进行一步?
linux默认终端有7个 按住ctrl + alt 从 f1-f7是7个终端 f1是图形化终端,f2-f7是黑屏 咱们用的是xshell远程链接,链接到linux,能够有N个终端 1.先去启动后端,uwsgi + django 2.先准备项目 xftp lrzsz 3.先准备虚拟环境 4.安装uwsgi 5.用uwsgi启动crm项目 -一是命令 + 参数 (不建议使用,请用配置文件 uwsgi.ini) uwsgi --http :8000 --module crm.wsgi 解释:--http 就是直接能够经过浏览器访问,不经过nginx uwsgi --socket :8000 --module crm.wsgi 解释: --socket 是必须用nginx去反向代理,才能找到,浏览器直接访问找不到
No application,这个错误是,必需要进入项目的第一层目录,可能在家目录下面可能执行
下面咱们用uwsgi.ini进行配置
咱们须要要这个文件uwsgi.ini启动,下面咱们打开这个文件看一下文件内的配置
配置文件,就如上图那么多.
如今,若是咱们想要启动这个进程,必须找到第一层,在这个目录下面启动
回车,发现启动4个进程
咱们发现,上边的进程已经存在了.
出现以下图的问题:
解决方案见下图.
强制杀死,两个进程
这个时候,启动了4个工做进程.
咱们如今结束窗口1这个运行
运行第二个窗口,查看进程
再次在窗口1中运行:
在窗口2中再次查看
查看一下端口
这个时候,咱们可以查看到这个端口uwsgi是8000端口
这个时候咱们查看到的是8000端口访问不了,
咱们关闭防火墙试一下
依然访问不了
5.用uwsgi启动crm项目 -一是命令 + 参数 (不建议使用,请用配置文件 uwsgi.ini) uwsgi --http :8000 --module crm.wsgi 解释:--http 就是直接能够经过浏览器访问,不经过nginx uwsgi --socket :8000 --module crm.wsgi 解释: --socket 是必须用nginx去反向代理,才能找到,浏览器直接访问找不到 正确的方式: 二,用配置文件uwsgi.ini [uwsgi] # Django-related settings # the base directory (full path) #填写项目的绝对路径(第一层路径) chdir = /opt/Crm_Project # Django's wsgi file #填写crm第二层目录下的wsgi.py文件的路径 module = Crm_Project.wsgi # the virtualenv (full path) #填写虚拟环境的绝对路径 home = /root/Envs/nginx_crm # process-related settings # master master = true # maximum number of worker processes #基于uwsgi的多进程,根据cpu来优化 processes = 4 # the socket (use the full path to be safe #若是你用了nginx反向代理,就填写socket参数 #若是你用了nginx反向代理,就填写socket参数 #若是你用了nginx反向代理,就填写socket参数 #若是你用了nginx反向代理,就填写socket参数 #若是你用了nginx反向代理,就填写socket参数 socket = 0.0.0.0:8000 #若是你没用nginx,想直接经过浏览器测试后端,使用http #http = 0.0.0.0:8000 # ... with appropriate permissions - may be needed # chmod-socket = 664 # clear environment on exit vacuum = true
三,经过配置文件,启动crm,启动后端!!!! uwsgi --ini uwsgi.ini 四。关闭防火墙 iptables -F #清空规则 systemctl stop firewalld #关闭防火墙服务 systemctl disable firewalld #禁止开机自启 五,收集crm的静态文件 修改settings.py 写入 STATIC_ROOT= '/opt/crmstatic' 六:用命令收集静态文件 python3 manage.py collectstatic
这样咱们就能够查看这个防火墙,这时候就仅仅有3条列了.看见这三行表明防火墙已经关闭了
咱们再次刷新一下网址,
服务端获得的地址
无效请求块的大小 ,
咱们如今是把后盾啊跑出来了.
2.安装这个数据库
2.准备数据库,启动 #保证mariadb已经安装了 yum install mariadb-server mariadb -y systemctl start mariadb #启动数据库
没有任何的提示,就表明最好的提示
下面,咱们启动数据库
咱们也能够验证这个事情,查看的命令是 systemctl status mariadb
这个时候,咱们发现,正在运行了
这个时候,咱们发现了这个命令包括8000端口的uwsgi和3306端口的mysql都已经启动了
咱们能够登陆mariadb看一下
登陆,没有密码,查看一下数据库
退出
3.准备nginx,进行反向代理 1.安装nginx 2.修改nginx的配置文件 nginx.conf 3.修改代码以下,截取的片断代码以下,参照着修改 upstream mycrm { server 0.0.0.0:8000; } #nginx的虚拟主机参数 server { #第一个虚拟主机,监听的80端口 listen 80; #填写的是你自定义的域名 或者服务器的ip地址,或者写locathost server_name 192.168.226.128; #当用户访问 www.s18dnf.com的时候,就进入这个虚拟主机 location / { uwsgi_pass http://mycrm; include uwsgi_params; } #这个location是解决crm的静态文件的问题的 #只要请求url是192.168.226.128/static/admin/admin.css location /static { #alias参数 就是将/static转化为/opt/crmstatic ,也就找到了咱们全部的静态文件 alias /opt/crmstatic; }
这个时候,咱们再准备nginx
打开文件:
咱们须要改的是连个虚拟主机
保存,退出
咱们找到了这个参数逇位置
如今也就是一个普通的文本uwsgi_params,包含在nginx.conf确定不行的
下面咱们再来编辑刚才的文件:
只有上边的一点点代码
上边表明解决静态文件问题的文件.
只要配置了上图红框内的内容,nginx就会返回静态文件相关的内容.
uwsgi_pass表明转发给一个单点机器
下面咱们结合一下负载均衡结合地址池
在这里,咱们须要写上多个地址.
这个时候,下面咱们须要修改一下下面的uwsgi_pass的写法
总体写法见下图
也就是负载均衡结合反向代理
上边是:定义负载均衡池,写入你的后端地址
下面的是:转发给负载均衡池,名字是自定义的叫mycrm
保存退出.
一个问题:没有作静态文件收集
补充:
五,收集crm的静态文件 修改settings.py 写入 STATIC_ROOT= '/opt/crmstatic' 六:用命令收集静态文件 python3 manage.py collectstatic
修改一下这个settings.py
这个地方,最好仍是用虚拟环境,而后输入收集命令.
输入yes,只有熟练了,才会
其实咱们什么事情,都没有作.因此是0个文件.
下面是一点点步骤和一些片断代码:
3.准备nginx,进行反向代理 1.安装nginx 2.修改nginx的配置文件 nginx.conf 3.修改代码以下,截取的片断代码以下,参照着修改
upstream mycrm { server 0.0.0.0:8000; } #nginx的虚拟主机参数 server { #第一个虚拟主机,监听的80端口 listen 80; #填写的是你自定义的域名 或者服务器的ip地址,或者写locathost server_name 192.168.226.128; #当用户访问 www.s18dnf.com的时候,就进入这个虚拟主机 location / { uwsgi_pass http://mycrm; include uwsgi_params; } #这个location是解决crm的静态文件的问题的 #只要请求url是192.168.226.128/static/admin/admin.css location /static { #alias参数 就是将/static转化为/opt/crmstatic ,也就找到了咱们全部的静态文件 alias /opt/crmstatic; }
整个是自上而下找代码.
ip是经过自上而下寻找,若是是4个主机,咱们须要经过域名进行区分.
目的就是找到,功能性的虚拟主机.
nginx修改完成后,咱们须要在平滑加载一下
报错,咱们从新打开看下
这个时候,咱们去掉http看一下
依然报错,
多了一个括号
应该是少了一个分号;
老师测试的时候,出现的一个问题
这个错误是须要启动nginx
老师检查了一下端口,这时候没有开启80端口,80表明的是nginx
上边这个咱们须要开启nginx服务
这个时候再次访问,依然访问不到,什么状况
流程图:
用户=>请求192.168.34.128(域名www.pian.com:80)==>nginx(经过uwsgi_pass进行负载均衡)
==>(uwsgi 8000端口)
一次咱们访问的是80端口
访问80端口,获得下图:
没有访问的权限,可是进入到了django了
下面咱们进入admin,访问下面的地址
这个时候,静态页面也就出来了
咱们能够直接访问这个地址,获得下面的页面,下面咱们须要结合域名和ip进行处理
2.supervisor的坑(接着上边的第一个)
4.还差一个supervisor 1.下载安装(看昨日笔记) 2.修改supervisor的配置文件 写入任务 3.这里有个坑 咱们用supervisor,其实就是帮我们执行了一下启动uwsgi的命令而已 4.注意后台不能启动过uwsgi
咱们须要导出一个文件
昨天咱们已经操做了,因此上边就省略了
此时咱们开始编辑supervisor.conf
在最底部写入这样的一个任务
若是路径发生了变化,第一个要修改为本身的uwsgi的绝对路径
以及本身的配置的绝对路径.
注意,这里的一个坑.
若是后端已经开了一个uwsgi,再用supervisor启动,固然是启动不了的.
下面咱们开始用匹配supervisor的一个命令
这个时候表明已经启动了
咱们再启动一下supervisor,看到熟悉的报错界面,见下图,应该看到的是running
也就是咱们已经开启了一个8000,如今咱们想再用supervisor再开启一个8000,确定会报错的.
咱们如今应该怎么办?干掉原来的8000
还有一个问题是supervisor跑起来了,一直开一个小窗口在这个跑,能不能在后台让他跑?
手动起这个程序,会须要一个窗口,可是用supervisor就会在后台起这个.什么叫后台起?就是不占用一个窗口,在程序后边启动.
咱们先退出左边的程序.
查看端口
筛选出supervisor
咱们干掉以后,从新来一次 kill -9 6273 强制杀死
咱们看一下man手册
没找到,能够经过linux 在线命令查看
kill -9 表示强制杀死的一个信号
干掉以后,从新执行下面的命令
这个时候成功跑起来了(刚才电脑卡了一下,将来可能存在一些问题,注意下).
这个时候,成功访问.
上图是咱们中止服务,再看一下网页
再开启一下,
3.路飞学城部署
vue+nginx+uwsgi+django+mysql+redis
redis(就是一个key - value键值型数据库,缓存型数据库,内存型数据库),mysql是一个关系型数据库 vue + django 先后端分离的项目 js html css bootstrap jquery
点击进入"路飞学城",
点击python//linux//go只是实现单独的不刷新,相似于ajax局部刷新
名字叫作vue+django 先后端分离的项目 这种也须要会布置
上图是nginx.conf的一个配置文件
部署方法以下:
首先,咱们创建一个统一管理的目录.s18luffy
直接在linux下载
上边是解压的命令
由于使用mac结尾的因此出现了这个图标.
咱们删除这个文件.
咱们每次开一个新项目,就须要开启一个新的虚拟环境
这个过程须要一点点时间.
咱们看到,上图目前是一个干净的虚拟环境.
下图先处理的是后端的uwsgi后端的部署.
2.后端uwsgi部署
1.下载路飞代码
wget https://files.cnblogs.com/files/pyyu/luffy_boy.zip
2.安装新的虚拟环境,解决环境依赖问题 ,能够用requirements.txt解决依赖问题
vim requirements.txt #打开,编辑写入以下模块依赖包信息
certifi==2018.11.29
chardet==3.0.4
crypto==1.4.1
Django==2.1.4
django-redis==4.10.0
django-rest-framework==0.1.0
djangorestframework==3.9.0
idna==2.8
Naked==0.1.31
pycrypto==2.6.1
pytz==2018.7
PyYAML==3.13
redis==3.0.1
requests==2.21.0
shellescape==3.4.1
urllib3==1.24.1
uWSGI==2.0.17.1
3.安装这个文件 requirements.txt
pip3 install -i https://pypi.douban.com/simple -r requirements.txt
4.使用uwsgi去启动路飞学城后端
使用uwsgi.ini配置文件方式启动,内容以下
[uwsgi]
# Django-related settings
# the base directory (full path)
#填写项目的绝对路径(第一层路径)
chdir = /opt/s18luffy/luffy_boy
# Django's wsgi file
#填写crm第二层目录下的wsgi.py文件的路径
module = luffy_boy.wsgi
# the virtualenv (full path)
#填写虚拟环境的绝对路径
home = /root/Envs/s18luffy
# process-related settings
# master
master = true
# maximum number of worker processes
#基于uwsgi的多进程,根据cpu来优化
processes = 4
# the socket (use the full path to be safe
#若是你用了nginx反向代理,就填写socket参数
#若是你用了nginx反向代理,就填写socket参数
#若是你用了nginx反向代理,就填写socket参数
#若是你用了nginx反向代理,就填写socket参数
#若是你用了nginx反向代理,就填写socket参数
socket = 0.0.0.0:9001
#若是你没用nginx,想直接经过浏览器测试后端,使用http
#http = 0.0.0.0:9001
# ... with appropriate permissions - may be needed
# chmod-socket = 664
# clear environment on exit
vacuum = true
5.用supervisor也去管理路飞的后台
[program:s18luffy]
command=/root/Envs/s18luffy/bin/uwsgi --ini /opt/s18luffy/luffy_boy/uwsgi.ini
stopasgroup=true
killasgroup=true
首先,咱们建立这样的一个文本文件,再打开,写入要安装的包.
记得要空一行.
保存退出.
上图是,咱们先看一下要安装的包以及,这个文件夹下面的内容.
下面,咱们开始安装
这个时候一行一行读取下载.
这时候,咱们须要配置第四步.
安装完成以后,咱们查看一下安装了哪些包
下面咱们测试一下能不能跑起路飞学城来?
如今,咱们调用的是wsgi这个模块,这个模块的性能很低
上边红色的是,咱们没有进行数据库迁移,咱们先退出来,解决的这个问题.
上图当前处于运行状态,咱们固然不能用0.0.0.0:9999进行访问.
上图,咱们返回的仅仅是json字符串.
也就是json化的数据,也就是发送给前端的vue.
后端给前端发送数据,前端在渲染,相关的内容
这个时候,咱们获得的知识一些json的一些数据.
这个时候,咱们返回的只是一些json的数据,没有什么意义
咱们须要的是,经过json返回的数据渲染前端的内容.
如今,咱们访问这个前端也就没有了任何的意义.
前端获得的是json数据是没有意义的.咱们该如何处理?
下图是第一层路径
第二层路径也是须要修改的,注意咱们说的须要修改的文件是启动文件uwsgi.ini
须要修改的地方:
1.项目的绝对路径,第一层路径
2.第二层路径下的wsgi.py文件
3.填写虚拟环境的绝对路径
4.修改端口
socket=0.0.0.0:9000
虚拟环境如何寻找?存放虚拟环境的位置,见下图
如今,咱们须要考虑端口是否会冲突
这个时候,咱们看到后端端口,8000正在跑.
cd - #回到上一次的工做目录
咱们再建立一个启动文件.
编辑这个文件,复制上边的内容:
确认没有问题,保存退出
下面咱们启动文件
下图中,确保没有error信息,后端就跑起来了
下面咱们再用supervisor在启动一下
咱们不能手动启动,咱们用supervisor试一下,
退出以后,咱们编辑一下下面的supervisor内容.
进入以后,如何复制4行?光标停在途中所示的绿色位置而后 4yy 就能复制了四行,复制就 p 一下
环境里边的uwsgi和配置文件里边的uwsgi都须要绝对路径
dd是删除一行的命令
而后,咱们保存退出.
上图是查看执行uwsgi的绝对路径
咱们启动文件的路径:见下图
而后咱们运行这条命令:
由于咱们修改了下图所示的supervisor.conf,因此咱们须要处理一下
咱们先杀死关于supervisor的内容.
这个时候已经杀死了supervisor,
思考:若是杀不死怎么办?
杀死这个进程可能慢一些,不要着急
这个时候,咱们再启动一下supervisor
出现上边现象是由于,咱们把两条绝对路径给注释掉了
这个时候,咱们再从新启动一下:
这个时候,咱们看到了s18crm和s18luffy都运行了
这个时候,咱们再次打开这个配置文件.
复制出来:
[program:s18luffy] command=/root/Envs/s18luffy/bin/uwsgi --ini /opt/s18luffy/luffy_boy/uwsgi.ini stopasgroup=true killasgroup=true
后端如今搞定了,咱们开始搞前端
1.前端vue部署,虽然没有学,可是思路是有的,如何完?
2.路飞学城部署 vue + nginx + uwsgi + django + mysql + redis(就是一个key - value型数据库,缓存型数据库,内存型数据库) vue + django 先后端分离的项目 js html css bootstrap jquery 部署方法以下 1.前端vue部署 1.下载vue代码,解压缩 wget https://files.cnblogs.com/files/pyyu/07-luffy_project_01.zip unzip 07-luffy_project_01.zip 2.配置node环境,去打包编译vue代码 下载node的代码包 wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz 解压缩node代码包 tar -zxvf node-v8.6.0-linux-x64.tar.gz 配置node的PATH环境变量便可 修改PATH生效便可 3.验证node是否正确配置(node就是如同python解释器 npm就是如同pip软件包管理工具) node -v npm -v 4.修改vue的代码文件 由于vue须要向后台发起请求,找到uwsgi 咱们的架构是将uwsgi隐藏在nginx后面 全部,vue(端口80)首先找的是nginx(反向代理,端口是9000),而后nginx(反向代理,端口是9000)反向代理给uwsgi (后端地址,9001) 修改方式以下 api.js路径以下/opt/s18luffy/07-luffy_project_01/src/restful #这里更改你本身的服务器ip地址 sed -i "s/127.0.0.1:8000/192.168.226.128:9000/g" api.js sed 是linux处理字符串的命令 -i 是将结果替换到文件 "s/127.0.0.1:8000/192.168.226.128:9000/g" #解释 s是替换模式 /你想替换的内容/你想替换的结果/ g是全局替换 api.js 你想修改操做的文件 5.进行打包vue,生成静态文件夹 dist 确保你在vue的代码文件夹 npm install #解决vue代码所需的模块依赖 npm run build #进行编译打包 6.当vue打包正确完成后,生成一个dist静态文件夹,此时就给丢给nginx去处理啦!!!
首先,前端代码须要下载下来,
前端也是须要下载一个压缩包.
即便,咱们不会写python和node,依然能够作好这个事情.
前面,咱们先保存退出.
先回到/opt/下面,再回到咱们的项目下面,s18luffy下面.
咱们,如今须要的是对先后端的代码进行统一管理.
如今咱们开始下载:
先查看一下,而后咱们再解压缩
解压缩:
这个时候node环境就出来了
进入node环境,bin认识
这个时候,咱们发现node和npm已经提供好了
有人已经帮咱们作好了,咱们只须要配置环境变量就能够了
如何将上边的路径加入环境变量?
而后,咱们找到,
PATH,添加内容到路径内.:
保存,退出.
执行下图的命令,使其生效
下面咱们看一下具体的内容.版本
node是解释器,npm指的是pip那个包
查看版本的目的:
3.验证node是否正确配置(node就是如同python解释器 npm就是如同pip软件包管理工具) node -v npm -v
下面,咱们进入vue目录下面的代码框架的目录
vue的代码须要打包,编译的
vue首先找到nginx,nginx用的是虚拟主机配置的,经过 两个server虚拟主机实现的功能,
vue最终生成的是静态文件.
部署vue的流程:
1.用户访问域名ip,首先进入的是nginx,看到的是vue的静态页面index.html
2.当咱们用户在浏览器,点击路飞页面的课程列表,就向后台的django发起post请求,好比0.0.0.0:9000(django和uwsgi)
3.uwsgi也就是后台,接收到请求,响应请求,返回一个json数据
4.vue接收到数据,进行渲染.也就是看到了课程信息了.
可是,咱们在django前面加上了nginx,也就是反向代理,为了让用户不直接访问后台,为了保护后台,
不要http找到django,而用的是socket找到django,
再总结一下,
vue 发起数据请求,请求流程是
vue=>nginx=>反向代理 丢给uwsgi,
因此,vue找到的仍是nginx
注意,nginx和uwsgi各自占用一个端口.
9001指的是后端django启动的一个端口.
捋一下:
8000指的是crm的uwsgi.
9000指的是第二个虚拟主机的9000
9001指的是后端的uwsgi的9001
80虚拟主机1,是首先打交道的虚拟主机,做用是:用于返回vue页面的一个东西.
虚拟主机能够实现web服务器的一个做用.
虚拟主机用于返回静态页面的做用,虚拟主机2是反向代理的做用.
接收前端的一个反向列表.看一下python的课程有哪些,
首先传递到nginx,而后再传到uwsgi,
虚拟主机是经过server标签实现的,
当咱们在路飞首页,点击课程列表的时候,vue发起一个post请求,请求格式是 服务器ip:9000 反向代理的做用端口
而后,nginx的9000端口,又向后台的uwsgi 9001转发了请求,
下面咱们开始继续进行:(站在运维的角度思考问题)
咱们看到有一个js文件.
打开这个文件:
咱们应该替换成服务器IP以及虚拟主机2的ip
没有运维就是须要本身须要干
里边信息那么多,确定不可能本身一个一个修改的
用sed,用于处理字符串的一个命令
最后的g,表明全局替换
直接回车,就所有修改了
如今,只是返回这样的结果,并无生效
咱们加上-i表示替换结果,写入到文件.
回车,再打开一下,发现所有都修改完成了.
sed是linux处理字符串的命令
-i是将结果替换到文件
sed 是linux处理字符串的命令 -i 是将结果替换到文件 "s/127.0.0.1:8000/192.168.226.128:9000/g" #解释 s是替换模式 /你想替换的内容/你想替换的结果/ g是全局替换 api.js 你想修改操做的文件 5.进行打包vue,生成静态文件夹 dist 确保你在vue的代码文件夹 npm install #解决vue代码所需的模块依赖 npm run build #进行编译打包 6.当vue打包正确完成后,生成一个dist静态文件夹,此时就给丢给nginx去处理啦!!!
56.须要进入那个源码处理
56.咱们要执行命令的路径
如今,咱们开始执行安装,注意必须在这个目录下面才能执行下面的两条命令
warning不重要,error重要.不行.
这个安装速度是取决于网速
npm install #解决vue代码所需的模块依赖//取决于网速
npm run build #进行编译打包//取决于机械硬盘转的速度
编译打包完成以后,会出现一个dist文件,咱们进入这个dist
一个是主页,nginx和static静态文件
6.当vue打包正确完成后,生成一个dist静态文件夹,此时就给丢给nginx去处理啦!!!
目前nginx.conf已经和crm结合了.
这里,咱们先拷贝出一份nginx.conf,防止该乱了
这样咱们内心就有数了
此时咱们编辑
咱们先开一个窗口,找到相应的路径
不要忘了加上分号
这个时候,咱们须要加上上边的两行参数.
先不搞反向代理,先保存退出
这个时候,咱们须要从新读取nginx
这个时候,咱们访问不到
为何是空的?报错?
咱们看一下架构图
上图,咱们获得vue代码的位置
这个时候,咱们发现有两个入口
以前,配置crm的static,找的是crm里边的,如今不找这里边的静态文件了.
咱们干掉,下面的静态文件
保存,退出,从新读取这个文件
从新加载这个文件.
再次刷新,咱们获得下面的界面:
之因此出现上图中报错的缘由是,咱们的虚拟主机尚未配置
咱们再次编辑
咱们再次须要配置第二个虚拟主机
上图是咱们须要配置反向代理的虚拟主机,保存退出
再次重启nginx
也就是上图中须要写成9001
如今咱们进入supervisor
先中止,再启动,再次查看一下,这个时候,已经出来了
可能出现错误的缘由,排错步骤,重启,从新加载
确保9000是nginx的
9001是uwsgi的
这个时候就刷新出来了.
6379redis
alex &&alex3714
如今是能够登陆了
存在问题,加入不了购物车
报服务器端错误
如今咱们启动的是redis请求
咱们须要安装一个redis数据库,下面咱们须要安装redis数据库
咱们发现是sqlite3,代码须要本身写
虚拟环境不会影响yum的
如今,咱们须要启动redis,而后查看一下端口
咱们发现6379redis服务器已经启动了 redis-server是服务端//redis-cli是客户端
这个时候,咱们已经进入数据库了
上图的命令,表示已经通了
如今,咱们再次运行,就会显示加入购物车成功了
这个时候购物车里边就有东西了
再加入一条linux数据,回到服务端进行测试一下
这个时候就有了2条数据了.这样就成功完成了.