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.

  1. 安装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

  1. 安装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/目录下。

  1. 安装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项目时,有时会报错以上错误。
报错原因:这个错误是说表中的这个字段不存在。
这时需要检查的有:数据库中对应的表和字段是否存在,
还需要检查下表中的数据类型设置或者字符编码格式是否有问题。

  1. 上传文件 下载软件,上传文件,修改配置,总计耗时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),如无意外,即正常运行访问啦。

  1. 安装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
// 查看进程

猜你喜欢

转载自blog.csdn.net/marslover521/article/details/81843290