(一)安裝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/
本文版權歸作者和博客園共有,不得轉載,未經作者同意參考時必須保留此段聲明,且在文章頁面明顯位置給出原文連接。