CentOS7.x下,安裝node+pm2+mongoDB+nginx部署vue項目

本文章參考了qiu_freedom的博客,改動主要在現有版本的更新和自己參考博客搭建遇到的問題(已解決)賦上了說明。

一、購買服務器和遠程連接

1.購買服務器和域名

可以選擇騰訊或者是其他產商的服務器,購買後會獲得服務器ip地址,再購買域名,將域名綁定到ip地址上。

2.下載Xshell和Xftp

Xshell是用來遠程連接服務器的,Xftp是用來遠程上傳文件的(你的項目文件),下載地址: 網址直達,填寫姓名和郵件地址後,下載地址會直接發送到你的郵件,個人使用時免費的。

二、安裝node

1.在你現在的電腦上看需要的node版本

網址直達
在這裏插入圖片描述
建議選擇LTS帶Erbium的穩定版。

2.遠程下載node

我選擇的是Node.js 12.16.0的版本
2.1、首先切換到/usr/local/src使用wget下載

cd /usr/local/src
wget https://nodejs.org/dist/v12.16.0/node-v12.16.0-linux-x64.tar.xz

2.2、解壓到root目錄下
在這裏插入圖片描述
注意,命令行後顯示的是~纔是root目錄下
輸入解壓命令

tar xvf node-v12.16.0-linux-x64.tar.xz

3.創建軟鏈接,設置全局環境變量使node和npm命令可在全局使用

ln -s /usr/local/src/node-v12.16.0-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/src/node-v6.11.1-linux-x64/bin/npm /usr/local/bin/npm

通過node -v 命令檢測node是否成功安裝

三、安裝mongoDB

1.首先用你現在的電腦登錄mongodb官網的安裝說明

鏈接:網址直達
因爲我服務器是CentOS系統,所以選擇了RedHat
1.1、 複製畫圈的代碼
在這裏插入圖片描述
1.2、創建文件,注意對應版本號

vi /etc/yum.repos.d/mongodb-org-4.2.repo

1.3、將複製的內容粘貼,按ESC,:wq保存並退出編輯

1.4、安裝MongoDB

sudo yum install -y mongodb-org

1.5、(可選)取消自動升級
新版本出來yum會自動升級,添加以下代碼到/etc/yum.repos.d/mongodb-org-4.2.repo文件中

exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

1.6、(說明)下面是mongdb默認數據庫文件以及日誌的指令位置
/var/lib/mongo (the data directory)
/var/log/mongodb (the log directory)
開啓mongodb
sudo service mongod start
關閉MongoDB
sudo service mongod stop
重啓MongoDB.
sudo service mongod restart

四、配置mongoDB(這裏請嚴格按照步驟)

1.開啓mongoDB服務
sudo service mongod start
2.開啓數據庫
mongo

成功的話,如圖:

在這裏插入圖片描述

3.設置權限和創建權限用戶

3.1、創建並切換到admin數據庫

use admin

進入admin數據庫,有switched to db admin的提示

3.2、 建立一個管理用戶的角色amdin

db.createUser({user:"admin",pwd:"admin",roles:[{role:"userAdminAnyDatabase",db:"admin"}]});

前面創建的是管理數據庫用戶的賬號,對於具體的數據庫,我們需要對應的用戶,所以:

3.3、 創建ta數據庫並切換到ta數據庫,(ta是指你要創建的數據庫名)

use ta

進入ta數據庫有switched to db ta的提示,如圖:
在這裏插入圖片描述
3.4、 在ta的數據庫下創建用戶,分配ta數據庫讀寫的權限

db.createUser({user:'test1',pwd:'test1',roles:[{role:'readWrite',db:'ta'}]})

3.5、 一定要完成上面的步驟後,再開啓數據庫權限
編輯文件:

vi /etc/mongod.conf

添加如下:(注意縮進,security沒有縮進,authorization縮進2個字符)

security:
  authorization: enabled

3.6、 保存並重新啓動。(必須)

systemctl restart mongod.service

3.7、 測試數據庫
3.7.1、切換到指定數據庫

use admin

3.7.2、查看所有數據庫

show dbs

在這裏插入圖片描述
3.7.3、(可選)你可能會發現你看不到ta的數據庫,因爲你這個數據庫沒有一條數據,所以沒顯示
3.7.4 、(可選)往ta數據庫插入一條數據,再運行show dbs就可以看到了

db.ta.insert({"name":"測試"})

更多關於mongoDB權限配置的,可參考FinelyYang的博客

五、安裝nginx

1.下載nginx
yum install nginx
2.開啓nginx服務
systemctl start nginx
3.關閉防火牆

查看防火牆狀態 firewall-cmd --state

停止firewall systemctl stop firewalld.service

禁止firewall開機啓動 systemctl disable firewalld.service

六、安裝和配置pm2

1.全局安裝pm2
npm install -g pm2
2.從安裝的提示中可以看到pm2位置

在這裏插入圖片描述

3.使用以下命令將pm2放入系統路徑下就可以了(這樣就可以在任何目錄使用pm2命令),注意兩個路徑之間的空格
ln -s /usr/local/src/node-v12.16.0-linux-x64/bin/pm2 /usr/local/bin/

七、部署自己的代碼

1.前端vue項目打包
npm run build
2.把打包好的dist文件放入你的後端項目根文件中,結構如圖:

在這裏插入圖片描述

3.然後在index.js文件加入如下代碼:
const path = require('path');
app.use(express.static(path.join(__dirname, 'dist')));
(可選)4.刪除node_modules文件
5.通過Xftp上傳到遠程服務器的/home文件中
6.在你項目文件下安裝依賴包
npm i
7.通過pm2開啓項目
pm2 start /home/'你的項目名'

成功運行的圖
在這裏插入圖片描述
(可選)附上一些pm2的常用命令:
啓動項目: pm2 start ‘你的文件路徑’
查看所有項目: pm2 list
重啓項目: pm2 restart ‘項目id’
停止項目: pm2 stop “項目id”
刪除項目: pm2 delete “項目id”

八、配置nginx

到了這一步,配置完,你就能在其他電腦訪問你的網站了,因爲我沒弄域名(要備案,太麻煩),所以我就寫最簡單的配置的nginx,通過公網ip訪問,如果你想弄更高級的操作(多頁面啥的),你可以看看其他文章
1.修改配置文件

vi /etc/nginx/nginx.conf

2.在http{}里加入如下代碼,最好手動輸入

server {
     listen 80;
     server_name ‘你的公網ip或者你的域名’;
     location / {
          root /home/‘你的項目名’/dist;
          proxy_pass http://127.0.0.1:3000;
       }
     }

3.保存重啓nginx(必須)

systemctl restart nginx.service

九、完成

在這裏插入圖片描述

最後

這是我按照步驟成功的案例,若有更好或者可以優化的地方,可在評論區獻上想法,謝謝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章