centOS7服務器部署項目

該項目通過node+vue純前端開發,首次嘗試,服務器系統爲:centOs7

部署項目的服務器是一個全新的雲服務器,該服務器上沒有MySQL,wget,vim,node,pm2等工具,因此在部署項目之前先把這些工具下載安裝好。

在安裝之前可以根據自己的需要更改用戶名,操作方法如下:

[root@user ~]# vi /etc/hostname

編輯內容爲自己需要修改的名稱。

1.安裝wget 、在root目錄下 用時5分鐘


參考地址:https://www.imooc.com/article/17781?block_id=tuijian_wz

[root@user ~]# yum -y install wget 

依次執行以上步驟,成功安裝wget.

2. 安裝vim 、在root目錄下 用時5分鐘


安裝步驟參考地址:https://blog.csdn.net/houqd2012/article/details/8111738

[root@user ~]# yum -y install vim* 下載vim所需要的所有包
[root@user ~]# rpm -qa | grep vim 查看一下你本機已經存在的包,有以下安裝包時表示已經正確安裝

這裏寫圖片描述

設置vim編輯環境
在用戶登錄的~目錄下創建一個 .vimrc文件,在其中進行自己習慣的編程環境的設置,這樣當別的用戶使用時並不相互影響。

[root@user ~]# cd ~
[root@user ~]# touch .vimrc
[root@user ~]# vim .vimrc

在文件中輸入:

set nu         // 這是設置顯示行號
set showmode   //設置在命令行界面最下面顯示當前模式等。
set ruler     // 在右下角顯示光標所在的行數等信息
set autoindent   // 設置每次單擊Enter鍵後,光標移動到下一行時與上一行的起始字符對齊
syntax on    // 即設置語法檢測,當編輯C或者Shell腳本時,關鍵字會用特殊顏色顯示
.........

內容輸入完畢後按Esc按鈕退出編輯,再按:wq保存編輯並退出。

具體操作vim步驟參考地址:https://www.cnblogs.com/heyangyi/p/8656559.html

3. 安裝node、 在root目錄下 用時5分鐘


安裝參考地址:https://help.aliyun.com/document_detail/50775.html
wget下載node: (版本號可根據自己需要更改)

[root@user ~]# wget https://nodejs.org/dist/v8.11.3/node-v8.11.3-linux-x64.tar.xz

解壓剛剛下載的安裝包(注意版本號是否與上一行命令一直):

[root@user ~]# tar xvf node-v8.11.3-linux-x64.tar.xz

創建軟鏈接,使node和npm命令全局有效。
通過創建軟鏈接的方法,使得在任意目錄下都可以直接使用node和npm命令:
(注意版本號與自己所下載的版本號一致)

[root@user ~]# ln -s /root/node-v8.11.3-linux-x64/bin/node /usr/local/bin/node
[root@user ~]# ln -s /root/node-v8.11.3-linux-x64/bin/npm /usr/local/bin/npm

查看版本號,當輸出版本號的結果後證明安裝成功。

[root@user ~]# node -v
[root@user ~]# npm -v

依次執行以上步驟,成功安裝node環境。
默認安裝在/root/node-v8.11.3-linux-x64/目錄下。

4. 安裝mysql 、在根目錄下、下載用時20分鐘、配置用時5分鐘


用戶名(自定義):root
密碼(自定義):123456

(1)先檢查系統是否裝有mysql

[root@user /]# rpm -qa | grep mysql

下面執行的yum install mysql安裝命令是無效的,因爲centos-7默認是Mariadb,所以執行以下命令只是更新Mariadb數據庫

[root@user /]# yum install mysql

刪除可用,如果之前安裝過mysql,需要先將mysql刪除

[root@user /]# yum remove mysql

(2)下載mysql的repo源

[root@user /]# wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm

安裝rpm包

[root@user /]# sudo rpm -Uvh mysql57-community-release-el7-10.noarch.rpm

(3)安裝mysql

[root@user /]# yum install -y mysql-community-server

(4)啓動mysql

[root@user /]# service mysqld start

(5)重置密碼
獲取臨時密碼

[root@user /]# grep 'temporary password' /var/log/mysqld.log

複製root@localhost:後面的密碼
登錄

[root@user /]# mysql -u root -p

粘貼剛纔的密碼
登陸成功,修改密碼

[root@user /]# ALTER USER 'root'@'localhost' IDENTIFIED BY 'new-password';

若報錯1819,進行如下操作, 再進行修改:
(報錯原因爲密碼太簡單,一下修改mysql對密碼的限制)

mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;

允許遠程登錄:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;

(6)查詢數據庫編碼格式

mysql> show variables like "%char%";

修改mysql的/etc/my.cnf 文件中的字符集鍵值、及最大連接和最大併發
在[mysqld]字段里加入character_set_server=utf8mb4(應數據處理系統要求),如下:

[mysqld]   
character_set_server=utf8mb4
#修改字符集屬性
collation-server = utf8mb4_unicode_ci
#修改排序規則屬性
max_connections=300
#設置最大連接和最大併發,默認爲100

再次查詢數據庫編碼格式,確保是 utf8mb4,如果結果未改變,則執行以下步驟重啓mysql後再次查詢。

(7)重啓mysql

[root@user /]# service mysqld restart

(8)關閉防火牆

[root@user /]# firewall-cmd --state    //查看防火牆狀態
[root@user /]# systemctl stop firewalld.service    //停止firewall
[root@user /]# systemctl disable firewalld.service    //禁止firewall開機啓動

Navicat測試遠程連接時有防火牆問題:(報錯2003)----centOS7
參考鏈接:https://blog.csdn.net/ytangdigl/article/details/79796961
實際操作及輸出:
這裏寫圖片描述

(9)本地連接數據庫
本地使用的是 Navicat for MySQL軟件
在以下選項中依次填入信息,連接即可:
這裏寫圖片描述

總結操作方法:

關於重啓mysql的方法:
參考鏈接:https://blog.csdn.net/cx136295988/article/details/76690722

linux mysql 查看默認端口號和修改端口號:
參考鏈接:https://blog.csdn.net/langzi7758521/article/details/51391932

#查看mysql是否已啓動:
[root@user /]#  service mysqld status
#關閉mysql: 
[root@user /]#  service mysqld stop
#重啓mysql:
[root@user /]#  /etc/init.d/mysql restart
#查看默認端口號:
mysql> show global variables like 'port';
#查看數據庫,表,字段的編碼格式:
mysql> SHOW FULL COLUMNS FROM tbl_name;
mysql> SHOW CREATE TABLE tbl_name;
mysql> SHOW CREATE DATABASE db_name;

輸出信息參考如下:
這裏寫圖片描述
其中要求字符集格式如下:
CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci

修改數據庫字符集格式:
(1)通過mysql for navicat修改,只能臨時有效
(2)在配置文件my.cnf中修改,然後重啓mysql,此方法長期有效(參考mysql安裝步驟6)

報錯總結:
(1)node啓動報錯,原因與Mysql有關
Error: ER_BAD_FIELD_ERROR: Unknown column ‘location’ in ‘field list’
在node項目部署完成後,啓動node項目時,有時會報錯以上錯誤。
報錯原因:這個錯誤是說表中的這個字段不存在。
這時需要檢查的有:數據庫中對應的表和字段是否存在,
還需要檢查下表中的數據類型設置或者字符編碼格式是否有問題。

5.上傳文件、下載軟件、修改配置、總計耗時1小時


參考地址:https://segmentfault.com/a/1190000012186563
(1)打包文件,項目根目錄下運行

npm run build

等待命令運行結束後,會發現根目錄下多了 dist 文件夾,這個文件夾就是我們等下要放到服務器中的。
(2)文件傳輸
–下載文件傳輸工具 Xftp–網上暫未下載成功,使用百度管家下載收費版暫時使用
–打開 Xftp 新建連接,類似Xshell,選項中勾選 “使用UTF-8編碼(E)”
這裏寫圖片描述
連接成功後可以看到左側是本地文件目錄,右側是服務器文件目錄,可以很方便的來回拖放文件。

在服務器端的文件目錄執行以下操作:
–.創建目錄文件 /root/projec/project_name (目錄層級、名稱隨意,這裏我以此爲項目目錄)
–.將剛剛的 dist 文件夾複製到 /root/project/project_name 目錄下,前端資源就OK了
–.將 server 文件夾也複製到 /root/project/project_name 目錄下

(3)項目初始化
通過Moba連接服務器:

// 進入項目目錄
[root@user /]# cd /root/project/project_name
[root@user project_name]# ls
dist server

初始化創建 package.json,這一步也可以在本地創建編輯好後上傳到服務器目錄即可

[root@user project_name]# npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
// 以下信息選項全部回車即可
package name: (project_name) 
version: (1.0.0) 
description: 
entry point: (index.js) 
test command: 
git repository: 
keywords: 
author: 
license: (ISC) 
About to write to /root/project/test/myblog/package.json:
{
  "name": "project_name",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}
Is this ok? (yes) yes
// 全部回車即可
[root@user project_name]# ls
dist  package.json  server

// 打開 package.json 編輯(也可在 Xftp 中右鍵文件編輯)
[root@user project_name]# vim package.json
    {
        "name": "project_name",
        "version": "1.0.0",
        "description": "A Vue.js project",
        "author": "ChenLiang <[email protected]>",
        "private": true,
        "scripts": {
            "dev": "node build/dev-server.js",
            "start": "node build/dev-server.js",
            "build": "node build/build.js"
        },
        "dependencies": {
            "body-parser": "^1.17.2",
            ......//你項目中所需要的依賴包
        },
        "engines": {
            "node": ">= 4.0.0",
            "npm": ">= 3.0.0"
        },
        "browserslist": [
            "> 1%",
            "last 2 versions",
            "not ie <= 8"
        ]
    }

保存退出,(Esc + :wq

安裝"dependencies"中項目運行需要的所有依賴

[root@user project_name]# npm install

(4)修改資源路徑
進入文件夾 server,打開 index.js,需要修改的大概有三處,用‘’----‘’標出

[root@user server]# vim index.js

const routerApi = require('./router');
const path = require('path');  //----文件中如果沒有則添加的
const bodyParser = require('body-parser');
const express = require('express');
const app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

// 部署上線時讀取靜態文件----文件需要修改添加的
app.use(express.static(path.join(__dirname, '../dist')));

// 後端api路由
app.use('/api', routerApi);

// 監聽端口----文件中需要修改的
app.listen(80);
console.log('success listen at port:80......');

設置靜態資源路徑,並修改監聽端口爲80(HTTP端口),
api.js 中文件路徑相關的也要更改爲 …/dist/static…,
嫌麻煩的也可以直接將 server 文件夾移到 dist 下就不用這麼麻煩改了。

此處之後與參考鏈接有點不同,因爲用的是公司的雲服務器,
所以當之前的步驟執行完以後,便已經將項目配置完成,直接執行啓動服務步驟。

(5)啓動服務:

[root@user  server]# node index.js
success listen at port:80......

瀏覽器打開 服務器IP:80(如:263.182.35.68:80),如無意外,即正常運行訪問啦。

6. 安裝pm2 啓動項目,關閉Moba後仍可訪問


pm2 是一個帶有負載均衡功能的Node應用的進程管理器。
上面我們以 node index.js 啓動了項目,
當我們退出 Moba / Xshell 時,進程就會關閉,無法在訪問到項目,
而 pm2 就是解決這種問題的,以 pm2 啓動項目後,退出 Xshell 後依然可以正常訪問。

(1)安裝 pm2

[root@user ~]# npm install -g pm2
// 以 -g 全局安裝的插件都在 node 安裝目錄 bin 文件下

//cd切換到node的bin目錄下
[root@user bin]# ls
cnpm  node  npm  npx  pm2  pm2-dev  pm2-docker  pm2-runtime

(2)bin 下都是命令語句,爲了可以在任何目錄都可以使用命令,我們將此文件夾加入環境變量

[root@user ~]# echo $PAT
//查看環境變量 

[root@user ~]# vim /etc/profile
//編輯永久添加環境變量(影響所有用戶)

#在文檔最後,添加:(版本號根據自己的修改)
# node
export NODE_HOME=/root/node-v8.11.3-linux-x64
export PATH=$PATH:$NODE_HOME/bin

保存退出(Esc + :wq
運行:

[root@user ~]# source /etc/profile

(3)pm2 啓動項目

[root@user ~]# cd /root/project/project_name/server
// 切換目錄
[root@user server]# pm2 start index.js
// 啓動進程
[root@user server]# pm2 stop index.js
// 停止進程
[root@user server]# pm2 list
// 查看進程
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章