1. 程式人生 > >伺服器部署專案

伺服器部署專案

該專案通過node+vue純前端開發,首次嘗試,伺服器系統為:centOs7

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

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

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

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

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

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

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

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

[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儲存編輯並退出。

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

[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

複製[email protected]:後面的密碼
登入

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

貼上剛才的密碼
登陸成功,修改密碼

[[email protected] /]# 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開機啟動

(9)本地連線資料庫
本地使用的是 Navicat for MySQL軟體
在以下選項中依次填入資訊,連線即可:
這裡寫圖片描述

總結操作方法:

#檢視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小時

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連線伺服器:

// 進入專案目錄
[[email protected] /]# cd /root/project/project_name
[[email protected] 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 <236338364@qq.com>",
        "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,需要修改的大概有三處,用‘’—-‘’標出

[[email protected] 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 下都是命令語句,為了可以在任何目錄都可以使用命令,我們將此資料夾加入環境變數

[[email protected] ~]# echo $PAT
//檢視環境變數 

[[email protected] ~]# 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 啟動專案

[[email protected] ~]# cd /root/project/project_name/server
// 切換目錄
[[email protected] server]# pm2 start index.js
// 啟動程序
[[email protected] server]# pm2 stop index.js
// 停止程序
[[email protected] server]# pm2 list
// 檢視程序

相關推薦

阿里雲配置伺服器部署專案

最近雙11來了,作為程式設計師,終於買了個阿里雲ecs伺服器,主要便宜。 對於一個前端開發人來說伺服器,專案部署好像搭不上邊,但是對於愛好者,可以瞭解一下。剛剛買完不知道怎麼搭建。官方給的解釋太繁瑣,不知道有沒有小夥伴跟我一樣的感受。 好了話不多說,直接開掛,看截圖。   1.這是剛剛購買的

centOS7伺服器部署專案

該專案通過node+vue純前端開發,首次嘗試,伺服器系統為:centOs7 部署專案的伺服器是一個全新的雲伺服器,該伺服器上沒有MySQL,wget,vim,node,pm2等工具,因此在部署專案之前先把這些工具下載安裝好。 在安裝之前可以根據自己的需要更改使用者名稱,操作方法如下

伺服器部署專案完整攻略

1.首先是購買伺服器和域名 這裡使用的是阿里雲,學生有價格優惠,只需十塊錢一個月,並且續費也是十塊一個月 選擇映象Windows server 2012r2 中文版 域名使用普通域名即可 域名需要備案才能解析伺服器ip地址(時間較長可以提前準備) 下圖是我解析

伺服器部署專案涉及到的知識(包括微信公眾賬號的一些配置)

1、對於tp框架來說需要修改     1、config中的配置檔案        資料庫的賬號密碼。如果使用了微信,需要配置appid、appsecret、使用了微信支付需要配置:mchid(商戶id

linux系統jetty伺服器部署專案用到的相關命令

1.複製檔案cp -r attached1 jetty-distribution-9.2.14.v20151106/work/jetty-0.0.0.0-8080-huoju-web-1.1.war-

伺服器部署專案

該專案通過node+vue純前端開發,首次嘗試,伺服器系統為:centOs7 部署專案的伺服器是一個全新的雲伺服器,該伺服器上沒有MySQL,wget,vim,node,pm2等工具,因此在部署專案之前先把這些工具下載安裝好。 在安裝之前可以根據自己的需要更

小白教你如何用Django+uwsgi+Nginx+騰訊雲ubuntu伺服器部署專案

背景   本篇部落格內容如題目所示,背景是前幾天幫老師寫了一個非常小的專案,大概是讓學生的家長可以登陸網址查閱孩子們的成績,前因後果就不在囉嗦了。在寫完Django成績查詢小專案後,面臨著專案的部署問題。在反覆跳進各種坑、查閱了各種技術說明文件和很多大牛的部落

[伺服器] Centos7 雲伺服器部署專案常用的 Linux 命令

一、前言 linux浩瀚如海,而部署伺服器所需要的 linux 知識並不多,下面是在 linux 開發版 centOS7 的雲伺服器上部署專案常用的命令,作為簡單的小結。 二、檔案處理 1、顯示 ls(ls:list):當前目錄下的內容——檔名

阿里雲伺服器部署django專案

ubuntu自帶了2.7。想要裝3.5並設定為預設python版本。 安裝python3.5 sudo add-apt-repository ppa:fkrull/deadsnakes sudo apt-get update sudo apt-get install python3.5 py

linux伺服器部署javaweb環境,並部署專案到tomcat(詳細教程二)

      上一篇,我們已經將mysql資料庫、jdk、tomcat等部署完畢。(什麼?沒有安裝?請移步上一篇:linux伺服器部署javaweb環境,並部署專案到tomcat(詳細教程一),慢走,不送 ╮( ̄▽ ̄)╭)閒話不多說,開始部署我們的web專案。 五、部署web專案  

linux伺服器部署javaweb環境,並部署專案到tomcat(詳細教程一)

      寫完一些東西,想放到伺服器上測試一下。而liunx伺服器也是第一次接觸,去網上百度了一些部署教程,可能是我知識儲備過於簡陋,嘗試了諸多次才將資料庫、jdk、tomcat部署完成。(本人一名java小白,嘗試著寫的第一篇部落格,如有不妥之處,歡迎諸位指正。) 一、安裝mysql

使用maven構建專案時,SSM和springboot專案的打包與雲伺服器部署

下面講講如何打包SSM和springboot專案,並部署到雲伺服器上。   由於使用的IDE不同,有的使用eclipse,有的使用idea,所以如果在IDE中按照 maven clean 再 maven install的方式打包會稍有不同,下面介紹一種通用的方式,不論SS

《阿里雲伺服器搭建》------實現Jenkins和github之間自動化部署專案

本系列教程的搭建環境為阿里雲伺服器,其他伺服器可作為參考。 本文主要講述實現Jenkins和github之間自動化部署專案 在瀏覽器中開啟我們的jenkins頁面。(http://ip:80/jenkins) 然後登陸管理員使用者。 為我們的專案建立一個job

linux伺服器部署web專案

我使用virtualbox安裝的Ubuntu作業系統,以Ubuntu系統為例,學習如何在linux伺服器上部署web專案 1.ubuntu下安裝jdk、mysql和tomcat 安裝jdk: 進入oracle官網下載jdk,.tar.gz為字尾的,進入目錄解壓 tar xvf jdk

阿里雲伺服器部署SpringBoot專案

在個人windows系統下,部署專案分以下幾步: (1)連線阿里雲伺服器 (2)將本地java程式的prod配置檔案引數配置為伺服器的路徑、資料庫等 (3)專案打包 (4)專案部署執行 (5)部署後訪問遇到的問題及解決辦法 1、SpringBoot中使用jsp部署後無效

IIS 部署專案時提示:“錯誤訊息401.2 :未經授權:伺服器配置導致登陸失敗。” 的解決辦法?

IIS 部署專案時提示:“錯誤訊息401.2 :未經授權:伺服器配置導致登陸失敗。” 的解決辦法? 這個錯誤的定位:你的站點使用了Forms驗證,而且在部署在生產環境的時候,設定錯誤,或者註釋了。 解決辦法: 1、檢查Forms配置是否遮蔽。 2、有許可權訪問的資源是否已經開發。

伺服器(CentOS)上使用 git 部署專案

文章目錄 在伺服器(CentOS)上使用 git 部署專案 方式一:使用 gitlab 倉庫 方式二:在伺服器上搭建 git 倉庫 附錄:git 常用命令 在伺服器(CentOS)上使用 git 部署專案 主

Java伺服器部署基於OpenCV的C++影象處理專案(三)圖片上傳並返回處理圖

Java伺服器部署基於OpenCV的C++影象處理專案(三)圖片上傳並返回處理圖 1.上傳圖片並返回灰度圖功能 由於使用的springboot開發,直接寫一個upload介面供圖片上傳,以下是springboot主函式以及upload介面。 package com.e

Java伺服器部署基於OpenCV的C++影象處理專案(二)編譯篇

Java伺服器部署基於OpenCV的C++影象處理專案(二)編譯篇 部署好環境之後,本篇記錄編譯的詳細步驟。部署環境篇 1.建立檔案 在native.cpp中寫入以下程式碼。 #include <jni.h> #include <string>

Java伺服器部署基於OpenCV的C++影象處理專案(一)

Java伺服器部署基於OpenCV的C++影象處理專案(一) 由於最近專案需要在後臺處理圖片並返回結果給移動端,所以折騰了一週如何將c++程式碼和opencv打包並部署到java伺服器中供後臺呼叫,這裡記錄下詳細過程。 基礎環境 伺服器環境: 阿里雲伺服器 Red Hat 4