前端Vue后端Django项目云服务器部署
(一)安装python3解释器,并创建不同的虚拟解释器
1.下载python3源码,选择3.6.7因为ipython依赖于>3.6的python环境
wget https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
2.解压缩源码包,去除xz后缀
xz -d Python-3.6.7.tar.xz
3.解压缩源码包,去除.tar后缀
tar -xf Python-3.6.7.tar
4.解决编译安装python3所需的软件依赖 ******** 很重要
备注:解决这些依赖关系后期才能正常运转python3.6,
如果不解决,会出现各种报错信息,此时还得重新编译python3.6
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
5.开始进行编译安装
分为三部曲
1.调用源码包路径底下的configure这个脚本文件(先进入刚才解压的Python-3.6.7目录中在执行下面的代码)
./configure --prefix=/opt/python36/
2.执行make指令,开始编译 (此步骤还不会生成/opt/python36这个文件夹),还在该目录中进行,直接输入make即可
3. make install 安装软件 (此步才是安装软件的过程)
-才会生成一个 /opt/python36这个软件安装路径
make install
6.编译安装ok,没有报错后,就可以正常使用python3了(在python36目录下执行bin/python3,这种使用方法比较麻烦)
7.快捷使用python3.6的方式
以下配置方式,二选一,请你选path配置
1.软连接(这一步很麻烦,并且不适用于virtualenv的创建)
ln -s /opt/python36/bin/python3.6 /usr/bin/python3 #但是这一步还没有pip
ln -s /opt/python36/bin/pip3 /usr/bin/pip3
2.环境变量的配置(用这个方法)
1.echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin (老师)
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin (虚拟Linux系统)
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin (试用服务器系统)
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin (长期服务器)
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin (腾讯云的)
2.配置python36的目录,加入环境变量
强调!!!
强调!!!
强调!!!
因为path的路径查找是有优先级顺序的!!!
并且在配置virtualenv的时候,优先以先找到的python环境为base环境
#请将python36的目录放到path的第一层
/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:
3.配置环境变量,永久生效,写入到文件/etc/profile中,每次登录就生效
vi /etc/profile #将此配置写到最低行
PATH=/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
source /etc/profile #读取这个文件,让python3生效(重要)
8.此时可以正确使用python3啦!
9.检查所有python的文件夹关系
[root@s14linux /opt 11:05:09]#ls
python36(这个是工作的,已经安全号的python3软件包目录)
Python-3.6.7(这个是python3的源码文件夹,安装成功后可删)
Python-3.6.7.tar 可删
10.升级pip工具,升级pip的版本
pip3 install --upgrade pip
11.安装ipython解释器(数据分析的时候有用,已经成功安装过ipython和jupyter,再安装和使用参考105笔记)
1.安装ipython,指定douban源下载
pip3 install -i https://pypi.douban.com/simple ipython
2.安装朱皮特
pip3 install -i https://pypi.douban.com/simple jupyter
#自由选择python3源码包的版本
https://www.python.org/ftp/python/
https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
#现在有个需求,我现在有两个项目,一个得运行于django1.1.11 ,还有一个版本得跑在django2.0上
python3 manage.py runserver 0.0.0.0:8000 #我得调用django的模块, pip3 list ,运行了django1.11.11
python3 manage.py runserver 0.0.0.0:9000 # 还得调用django的模块,我想运行django2.0
#问题,能调用一个解释器吗?
1.买俩电脑,装俩python3
2.装多个python解释器,在当前linux下,安装一个python3.6 安装一个python3.7
python3.6 manage.py runserver 0.0.0.0:8000 #我得调用django的模块, pip3 list ,运行了django1.11.11
python3.7 manage.py runserver 0.0.0.0:9000 # 还得调用django的模块,我想运行django2.0
3. 使用虚拟解释器环境,可以在一台服务器上,运行多个python解释器的环境
并且这个虚拟环境的创建,非常快速,简洁,好用
1. 新建虚拟环境 venv1
2. django2运行在venv2
#安装django1.11.11(可通过pip3 list查看都安装了哪些模块),(也可以先不安装,在下面的虚拟解释器中还得安装)
pip3 install -i https://pypi.douban.com/simple django==1.11.11
#linux下的虚拟环境安装(virtualenv),以宿主机的python解释器为主体,然后复制的多个虚拟环境(主要解决的
就是上面的问题:有多个项目需要依赖不同的python解释器环境(版本不同或者安装的模块不同),这时就能使用
这个工具以原解释器为基准,复制多个相互独立的,干净的、互不影响的解释器环境,可以跑不同的项目;但是跟
操作系统没有关系,还是共用一个系统,端口不能重复使用;此外如果多个项目依赖环境相同,也可以在同一个虚
拟解释器环境中跑,或者在原python解释器中跑起来)
1.通过pip3安装虚拟环境(安装16.6.0这个版本没有问题,最新版本python需要大于3.8版本,所以不用最新的)
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv==16.6.0
2. 通过virtualenv命令,创建第一个新的虚拟环境(可以先通过python加tab键查看有哪些python版本),
在opt目录下建all_env目录并进入,所有虚拟环境都放在这里(这个目录名和位置随意,记住即可)
virtualenv --no-site-packages --python=python3 venv1
virtualenv --no-site-packages --python=python3 venv2
virtualenv --no-site-packages --python=python3 venv3
virtualenv --no-site-packages --python=python3 venv4
virtualenv --no-site-packages --python=python3 venv5
参数解释
--no-site-packages 创建一个干净,隔离宿主机环境的虚拟环境
--python=python3 #指定你的虚拟环境,以哪个解释器为base环境,我的这个是以我机器上的python3解释器为主体
注意:上面安装并创建成功之后,先不进行下面的步骤(激活进入虚拟解释器环境中),先将(二)的前七步执行完,再进入虚拟解释器环境中;也可直接进入虚拟环境中,因为虚拟环境只隔离python及其安装包,但是不影响操作系统
3.激活虚拟环境,切换宿主机环境,进入虚拟环境的环境变量
source /opt/all_env/venv1/bin/activate
source /opt/all_env/venv2/bin/activate
source /opt/all_env/venv3/bin/activate
4.检查环境变量PATH,检查是否正确激活了虚拟环境
(venv1) [root@s14linux ~ 12:03:48]#echo $PATH
/opt/all_env/venv1/bin:/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:
5.检查你当前的python3和pip3来自于哪里
which python3
(venv1) [root@s14linux ~ 12:04:12]#which python3
/opt/all_env/venv1/bin/python3
which pip3
6.使用venv1虚拟环境,安装一个django1.11.11(可以通过pip3 list查看安装了哪些包)
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple django==1.11.11
7.测试运行在一个服务器上,运行两个django版本
1.宿主机python下运行django2.0
2.虚拟环境下运行django1.11.11
8.退出虚拟环境
deactivate
(二)安装nginx代理服务器(它可以监听多个服务器)
编译安装nginx:
1.解决依赖关系
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel openssl openssl-devel -y
2.下载源码包(这一步回到opt目录下吧)
wget -c https://nginx.org/download/nginx-1.14.2.tar.gz
3.解压缩源码包
tar -zxvf nginx-1.14.2.tar.gz
4.进入解压后的文件中,通过configure这个脚本文件执行,释放makefile,然后指定安装nginx的路径,以及开启模块功能ssl与状态模块功能
./configure --prefix=/opt/nginx1-14/ --with-http_ssl_module --with-http_stub_status_module
5.编译且编译安装
make && make install
6.进入/opt/nginx1-14/ 安装好的nginx的目录下,找到一个sbin的文件夹(不进入该目录),找到nginx(绿色的就是可执行的)的启动命令,然后启动nginx服务
1.检查nginx安装后的目录,ll /opt/nginx1-12
drwxr-xr-x 2 root root 333 12月 6 09:32 conf 配置文件存放的目录, nginx.conf这个文件就是nginx的主配置文件
drwxr-xr-x 2 root root 40 12月 6 09:32 html 存放网页根目录的文件夹,存放了index.html **.html **.gif **.jpg
drwxr-xr-x 2 root root 6 12月 6 09:32 logs 日志目录
drwxr-xr-x 2 root root 19 12月 6 09:32 sbin nginx启动脚本目录
2.nginx的可执行命令
- rwx(user) r-x(group) r-x(other) 1 root(属主) root(属组) 5656000 12月 6 09:32 sbin/nginx
7 5 5
./sbin/nginx #直接启动nginx (注意启动后表面上没有反应,其实已经启动了,可以用浏览器访问)
./sbin/nginx -s stop
./sbin/nginx -s reload #平滑重启(修改了nginx配置文件,不重启服务就加载配置且生效)
./sbin/nginx -t 检测nginx.conf 配置文件的语法正确性
7.检查端口查看进程ps -ef|grep nginx,然后通过浏览器访问nginx页面,192.168.119.20:80(如果无法访问把防火墙关掉试试,要是云服务器还要开通80端口)
下面还需要修改配置nginx.conf文件中内容,这里先不写了,通过配置可以监听多个虚拟主机(下面写过)
(三)使用虚拟解释器环境中安装的uwsgi服务器启动django项目(django原生自带的有个服务器,仅在开发时用,且性能低,这里部署上线不用那个服务器启动)
0.安装uwsgi之前将之前项目所依赖的python中安装包迁移到虚拟解释器下面
通常在项目目录下执行下面语句:
pip3 freeze > requirements.py #这个requirements.py文件,就存放了正常运转的开发软件依赖包的信息
可以在cmd、pycharm终端或者Linux系统中输入这条命令就能将该python解释器(或者虚拟解释器)下面安装的
所有包都写在一个requirements.py文件中了,然后再在另一个解释器环境(或者虚拟解释器环境)中,还在项目下执行
pip3 install -i https://pypi.douban.com/simple -r requirements.py 安装所有包(这里也用豆瓣源快一点,进入文件所在的目录中再执行这一句),保证了项目迁移的一致性,同时避免了迁移过程中在其他解释器
环境中一个一个的安装项目之前依赖的包
(补充)安装django的一个django-multiselectfield
pip3 install django-multiselectfield
使用uwsgi启动django(此时进入虚拟解释器环境中进行下面的操作----venv1,使用(一)中下面的方法激活、进入方法)
1.安装uwsgi
pip3 install -i https://pypi.douban.com/simple uwsgi
2.通过uwsgi命令启动python应用(进入文件所在目录中,执行下面命令)
uwsgi --http 0.0.0.0:8888 --wsgi-file test1.py
--http 指明是http协议
--socket 启动一个socket 链接
--wsgi-file 指明一个python应用文件
3(重要).通过uwsgi启动django项目(问题是,uwsgi不处理static静态文件的配置,云服务端要用已开通的端口8080;settings文件中改为:allow_hosts=['*'],debug=False,django项目目录中执行下面命令)
uwsgi --http :8888 --module Nb_crm.wsgi
4.uwsgi可以热加载项目
uwsgi --http :9999 --module mycrm.wsgi --py-autoreload=1
--py-autoreload是告诉uwsgi自动重启加载django项目
5(重要).通过uwsgi的配置文件启动项目(一般这一步在windows中写好在转到Linux系统中,直接在Linux中改也行)
1.在django目录下手动创建uwsgi.ini文件(不能复制别人的文件修改,会出现编码错误问题)
touch uwsgi.ini
2.写入如下配置:
[uwsgi]
#项目的绝对路径,定位到项目的第一层
chdir = /opt/django/quanxian
#指明项目的wsgi文件路径
module = NB_crm.wsgi
#指明你的虚拟解释器的第一层路径
home = /root/Envs/nbcrm (改为/opt/all_env/venv1)
#指明通过uwsgi,启动多少个进程
processes = 5
#非常重要
#非常重要
#非常重要
#如果你已经配置了nginx(启动了nginx服务,配置了uwsgi_pass),请用这个socket连接(有多个项目时端口不能重复)
socket = 0.0.0.0:8000
#如果你没用nginx,想通过uwsgi直接启动web服务,指明http协议
#http = 0.0.0.0:9999
#在退出uwsgi环境后,清空环境变量
vacuum = true
6.通过配置文件启动NB_crm
(注意uwsgi不会处理静态文件,如果有,也是浏览器的缓存!!!!),等nginx也配置好了再启动
不急着用这条指令,最后一步再用,具体如何使用参考10:uwsgi --ini uwsgi.ini
7.配置django的settings.py,收集所有NB_crm项目所需的静态文件
(这一步要到Linux中进行,路径随便,只要下面的nginx配置中的alias /opt/static/...和这里保持一致就行,收集的前提是项目目录下有static这个文件夹,原项目中没有的话,新建立一个static文件夹)
1.#通过命令,收集整个项目所有的静态文件,放入到/opt/static/... ,项目settings中写上静态文件要放的目录
STATIC_ROOT='/opt/static/...' (我的有'/opt/static/quanxian'、'/opt/static/huiyi'等)
2.执行命令(在项目路径下)
python3 manage.py collectstatic
3.此时NB_crm的所有静态文件,都跑到/opt/static/...底下了
(nbcrm) [root@node1 /opt/NB_crm 11:09:33]#ls /opt/static/...
admin css imgs js plugins
8.配置nginx
1.配置一个网站入口,当用户访问192.168.12.96:80 这个web应用时,自动将请求转发给uwsgi,uwsgi处理后,返回给nginx,返回给用户
当请求是192.168.12.96:80的时候,其实访问的是192.168.12.96:9999 这是动态请求,因为我是找到的uwsgi
#匹配度最低的写法,因此就是任何的请求都访问到这里
2.通过nginx去处理静态文件
3.nginx.conf配置如下
#定义负载均衡池,里面放入uwsgi的地址Nginx代理仅代理一台服务器,而Nginx负载均衡则是将客户端请求代理转发至
#一组upstream虚拟服务池Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用,只有一台服务器,
#也能这么使用,我们这里不用这种方法,使用下面方法,不用负载均衡池,一个服务器开多个项目的时候不好配置,
#个人这么理解:使用负载均衡池主要是针对多个(或1个)服务器跑一个项目,不使用时针对一个服务器跑多个(或1个)项目
upstream nbcrmlala {
server 127.0.0.1:8000; #(这个要与django项目中uwsgi.ini中socket= 0.0.0.0:8000保持一致,端口随意可以是9999等等,这才是django真正在机器中启动占用的端口)
}
server {
listen 80;
server_name www.s14huoying.com; #(192.168.119.20)
#讲nginx入口的请求,直接反向代理给uwsgi
location / {
uwsgi_pass nbcrmlala;
include /opt/nginx1-14/conf/uwsgi_params;
}
#通过nginx处理nbcrm的静态文件
location /static {
alias /opt/static/;
}
}
这里要使用的是:
server {
listen 80;
server_name www.s14huoying.com; #(192.168.119.20)
#讲nginx入口的请求,直接反向代理给uwsgi
location / {
uwsgi_pass 0.0.0.0:8000; #(这个要与django项目中uwsgi.ini中socket= 0.0.0.0:8000保持一致,端口随意可以是9999等等,这才是django真正在机器中启动占用的端口)
include /opt/nginx1-14/conf/uwsgi_params;
}
#通过nginx处理nbcrm的静态文件
location /static {
alias /opt/static/quanxian/;
}
}
server {
listen 8001; #跑多个项目的时候,没有不同的域名的话,要使用不同的端口
server_name www.s14huoying.com; #(192.168.119.20)
#讲nginx入口的请求,直接反向代理给uwsgi
location / {
uwsgi_pass 0.0.0.0:9000; #(这个要与django项目中uwsgi.ini中socket= 0.0.0.0:8000保持一致,端口随意可以是9999等等,这才是django真正在机器中启动占用的端口)
include /opt/nginx1-14/conf/uwsgi_params;
}
#通过nginx处理nbcrm的静态文件
location /static {
alias /opt/static/huiyi/;
}
}
成功完整版:
#upstream nbcrmlala {
# server 127.0.0.1:9000; #(这个要与django项目中uwsgi.ini中socket= 0.0.0.0:8000保持一致,端口随意可以是9999等等)
#}
server {
listen 80;
server_name 192.168.119.20;
#讲nginx入口的请求,直接反向代理给uwsgi
location / {
uwsgi_pass 0.0.0.0:8000;
include /opt/nginx1-14/conf/uwsgi_params;
}
#通过nginx处理nbcrm的静态文件
location /static {
alias /opt/static/quanxian/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 8001;
server_name 192.168.119.20;
#讲nginx入口的请求,直接反向代理给uwsgi
location / {
uwsgi_pass 0.0.0.0:9000;
include /opt/nginx1-14/conf/uwsgi_params;
}
#通过nginx处理nbcrm的静态文件
location /static {
alias /opt/static/huiyi/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
9.更改uwsgi.ini ,指明socket连接,结合uwsgi 和nginx
#如果你已经配置了nginx,请用这个socket连接
socket = 0.0.0.0:8000
10.启动uwsgi.ini
在前台启动:uwsgi --ini uwsgi.ini
Ctrl+c关闭项目
在后台启动:uwsgi -d --ini uwsgi.ini
查看项目进程:ps -ef|grep uwsgi
关闭项目:uwsgi --stop uwsgi.pid
关闭不了用这个(实际就是用这个):sudo pkill -f uwsgi -9
启动nginx
./nginx
并且访问nginx的域名入口,查看是否能访问到uwsgi项目,并且静态文件是否正常
www.s14huoying.com(192.168.119.20) 查看浏览器状态
11.配置supversior,管理uwsgi进程(交互式管理工具,需要使用时参考110笔记)
以上是前后端不分离项目(一个或多个)部署流程,下面是前后端分离项目部署,
主要是前端部署,后端部署跟上面差不多:
(四)打包vue项目
1. 要在服务器上,编译打包vue项目,必须得有node环境
下载node二进制包,此包已经包含node,不需要再编译
wget https://nodejs.org/download/release/v8.6.0/node-v8.6.0-linux-x64.tar.gz
解压缩
tar -zxvf node-v8.6.0-linux-x64.tar.gz
进入node文件夹
[root@web02 opt]# cd node-v8.6.0-linux-x64/
[root@web02 node-v8.6.0-linux-x64]# ls
bin CHANGELOG.md etc include lib LICENSE README.md share
[root@web02 node-v8.6.0-linux-x64]# ls bin
node npm npx
[root@web02 node-v8.6.0-linux-x64]# ./bin/node -v
v8.6.0
[root@web02 node-v8.6.0-linux-x64]# ./bin/npm -v (此时这一步找不到文件,添加完环境变量就好了)
5.3.0
将node命令,添加至linux环境变量,修改vi /etc/profile,写入
PATH=$PATH:/opt/node-v8.6.0-linux-x64/bin
或者直接添加在原来的后面(我是用这一种)
PATH=/opt/python36/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/node-v8.6.0-linux-x64/bin
读取文件,生效PATH
source /etc/profile
测试path
[root@web02 node-v8.6.0-linux-x64]# node -v
v8.6.0
[root@web02 node-v8.6.0-linux-x64]# npm -v
5.3.0
2. node环境有了,安装node模块,以及打包node项目
进入vue源码目录
cd 07-luffy_project_01/
安装vue模块,默认去装package.json的模块内容,如果出现模块安装失败,手动再装(先将windows下的node_modules包删掉)
npm install
此时注意,你本地写的vue代码,接口很可能连接的服务器地址有问题,注意Axios.POST提交的地址,一定得发送给django应用(如果用了nginx,就发送给nginx的入口端口)
超哥这里为了试验方便,将vue项目和django项目放在了一台服务器,通过nginx反向代理功能(8003端口),转发vue请求给django(9999(后端项目的真正端口));此外要把vue项目里面的axios请求的端口,都改为8003(这是后端项目的入口);前端vue下面会打包成一个静态文件,在nginx配置中也有一个入口端口(8002),下面会具体配置。
准备编译打包vue项目,替换配置文件所有地址,改为服务器地址
sed -i 's/127.0.0.1/192.168.119.20/g' /opt/django/qianhou/front-end/src/restful/api.js
sed -i 's/127.0.0.1/47.115.43.113/g' /opt/django/qianhou/front-end/src/restful/api.js
sed -i 's/127.0.0.1/47.113.109.202/g' /opt/django/qianhou/front-end/src/restful/api.js
sed -i 's/127.0.0.1/193.112.175.126/g' /opt/django/qianhou/front-end/src/restful/api.js
确保vue的route模式是history
路径:opt/django/qianhou/front-end/src/router/index.js
export default new Router({
linkActiveClass:'is-active',
mode: 'history',//改成history模式
此时打包vue项目,生成一个dist静态文件夹
npm run build
检查dist文件夹
[root@web02 07-luffy_project_01]# ls dist/
index.html static
3. 至此vue代码就结束了,只需要让nginx配置,找到vue的index.html首页文件即可
server {
listen 8002;
server_name 192.168.119.20;
location / {
root /django/qianhou/front-end/dist;
index index.html;
}
}
server {
listen 8003;
server_name 192.168.119.20;
#讲nginx入口的请求,直接反向代理给uwsgi
location / {
uwsgi_pass 0.0.0.0:9999;
include /opt/nginx1-14/conf/uwsgi_params;
}
#通过nginx处理nbcrm的静态文件
location /static {
alias /opt/static/qianhou/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
4.要启动服务器的redis-server服务端
这个项目数据库用的是sqllite,不需要配置数据库了,购物车用都的是redis,
(如下安装启动,更多功能参考107天笔记)
通过源码安装
1.在线下载redis源码包
wget http://download.redis.io/releases/redis-5.0.4.tar.gz
2.解压缩redis源码包,如果源码包带有.gz结尾,需要通过gzip指令扩展,也就是-z的参数
tar xzf redis-5.0.4.tar.gz #解压缩这个文件,且显示解压缩过程
3.切换目录到redis源码包
cd redis-5.0.4
4.由于redis没有configure脚本,直接就有了makefile,因此可以直接编译且安装
make #编译make install #安装长度
此两条命令可以缩写为一条 make && make install
5.编译安装完成后,redis默认会将redis命令添加到环境变量中/usr/local/bin底下,
可以直接输入命令:redis-server 开启服务(不用这个),也可以通过配置文件来开启服务,下面
将redis-5.0.4目录下的redis.conf修改一个文件名,然后再创建一个新的redis.conf文件
mv redis.conf redis.conf.bak
6.启动redis服务端,自定义一个redis.conf(touch一个新的出来)
vi redis.conf ,写入以下内容(不要加上注释:重要)
port 6379
daemonize no #后台运行redis
pidfile /data/6379/redis.pid #将redis进程的id写入到redis.pid这个文件
loglevel notice #日志级别
logfile "/data/6379/redis.log"
dir /data/6379 #配置redis数据存放点
protected-mode yes #redis3.0之后的安全模式 (也可以为no,为no的时候不需要下面的密码,我是为no)
requirepass qiangdademima #给redis添加密码
redis的安全模式,可能会阻挡你远程连接,为了解决这个安全模式,给redis设置一个密码
开启服务之前先创建一个目录:mkdir -p /data/6379
用文件启动Redis是通过命令(用文件启动的话,需要到文件所在的目录进行;直接启动不需要进目录):redis-server redis.conf
查看redis进程和是否开启:ps -ef|grep redis 或者开启一个服务端:redis-cli 然后再输入ping,如果回应PONG就开启了
关闭redis服务: redis-cli shutdown 或者kill -9 PID杀掉这个进程
7.redis的多实例功能,可以在一个机器上,启动多个redis服务端
1.准备一个新的配置文件,redis默认支持多实例,再准备一个新的配置文件redis-6380.conf,内容如下:
port 6380
bind 0.0.0.0
daemonize yes
pidfile /data/6380/redis.pid
loglevel notice
logfile "/data/6380/redis.log"
dir /data/6380
protected-mode yes
requirepass zeiqiangdademima
2.启动第二个redis实例(第二个数据库)
redis-server redis-6380.conf
8.通过命令查询redis的密码参数
CONFIG get requirepass
最后要是在服务器上部署的话将地址都修改为服务器的公网ip
主要是nginx的配置文件和前端的api要访问的端口
以及前端页面中的极个别的图片(例如:网站logo,注册默认图片,添加作品中的默认图片)
还有后端的:settings中支付参数的两个回调的ip,和交易完成后修改完订单数据后要重定向到前端页面
最最后解决vue在360及ie浏览器兼容性
1.npm install babel-polyfill --save-g
2.在前端的main.js中导入如下:
import 'babel-polyfill'
3.并在webpack.base.conf.js
中配置entry,修改为:
entry: {
app: ['babel-polyfill', './src/main.js']
}
出处:https://www.cnblogs.com/liujiajia_me/
本文版权归作者和博客园共有,不得转载,未经作者同意参考时必须保留此段声明,且在文章页面明显位置给出原文连接。