本文章參考了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
九、完成
最後
這是我按照步驟成功的案例,若有更好或者可以優化的地方,可在評論區獻上想法,謝謝