• 前端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']
    }

    作者:E-QUAL
    出处:https://www.cnblogs.com/liujiajia_me/
    本文版权归作者和博客园共有,不得转载,未经作者同意参考时必须保留此段声明,且在文章页面明显位置给出原文连接。
                                                本文内容参考如下网络文献得来,用于个人学习,如有侵权,请您告知删除修改。
                                                参考链接:https://www.cnblogs.com/linhaifeng/
                                                                 https://www.cnblogs.com/yuanchenqi/
                                                                 https://www.cnblogs.com/Eva-J/
                                                                 https://www.cnblogs.com/jin-xin/
                                                                 https://www.cnblogs.com/liwenzhou/
                                                                 https://www.cnblogs.com/wupeiqi/
  • 相关阅读:
    第15.26节 PyQt(Python+Qt)入门学习:Model/View架构中的便利类QListWidget详解
    第二十一章、 Model/View便利类列表部件QListWidget详解
    PyQt(Python+Qt)学习随笔:QListWidget的信号简介
    iis日志存放位置 及 查看方法
    如何查看和分析IIS日志
    IIS网站设置禁止IP访问设置方法
    修改php默认的FastCGI模式为ISAPI模式的方法
    VPS/云主机CPU占用100%故障排查
    APACHE服务器httpd.exe进程占用cpu100%的解决方法
    httpd.exe占用100%CPU
  • 原文地址:https://www.cnblogs.com/liujiajia_me/p/12495027.html
Copyright © 2020-2023  润新知