0%

后端管理系统部署操作手册(Linux CentOS7.5)

兄弟分行做了一个客户信息管理系统,架构是后台管理系统+小程序的配置。后台管理系统即一个网站的部署,小程序使用了低码平台开发,可以远程推送在手机上测试。本文档主要用于网站部署过程的记录。

一、服务器基础配置

1. Java11安装

  1. 下载安装包:https://www.oracle.com/java/technologies/downloads/#java11

    安装包名称:jdk-11.0.18_linux-x64_bin.tar.gz

  2. 上传JDK至云服务器:/usr/local

  3. 解压JDK:

    1
    2
    3
    4
    5
    6
    7
    8
    # 创建目录
    mkdir /usr/local/java

    # 解压文件到指定目录(查看是否有lib、bin文件夹)
    tar -zxvf ./jdk-11.0.18_linux-x64_bin.tar.gz -C /usr/local/java

    #删除安装包
    rm -f jdk-11.0.18_linux-x64_bin.tar.gz
  4. 配置java的环境变量:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    # 打开配置文件
    vi /etc/profile

    #点击i进入编辑模式,在文件末尾添加
    export JAVA_HOME=/usr/local/java/jdk-11.0.18
    export CLASSPATH=$JAVA_HOME/lib/
    export PATH=$PATH:$JAVA_HOME/bin

    #按Esc键退出编辑,最后输入 :wq 保存编辑,并回车退出(注意有“:”)

    # 刷新环境变量
    source /etc/profile
  5. 验证java是否安装成功

    1
    2
    3
    4
    5
    java -version
    成功示例:
    java version "11.0.18" 2023-01-17 LTS
    Java(TM) SE Runtime Environment 18.9 (build 11.0.18+9-LTS-195)
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.18+9-LTS-195, mixed mode)
  6. 创建软链接:

    1
    2
    # 创建软链接
    ln -s /usr/local/java/jdk-11.0.18/bin/java /usr/bin

    参考链接:https://cloud.tencent.com/developer/article/2080307

    参考链接:https://blog.csdn.net/dubhe_zhao/article/details/125387612

2.mysql 安装

  1. 从官网下载用于Linux的Mysql安装包:

    1
    wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
  2. 解压安装包:

    1
    tar xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz 
  3. 移动解压后的文件:

    1
    mv mysql-8.0.19-linux-glibc2.12-x86_64 /usr/local/mysql
  4. 在/usr/local/mysql目录下新建data文件夹:

    1
    mkdir /usr/local/mysql/data
  5. 修改mysql配置文件:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #进入配置文件
    vi /etc/my.cnf

    #以下为添加内容:
    [mysqld]
    datadir=/usr/local/mysql/data
    port=3306
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    symbolic-links=0
    max_connections=600
    innodb_file_per_table=1
    log-error=/usr/local/mysql/data/error.log
    lower_case_table_names=1
    # skip-grant-tables
    #
    # include all files from the config directory

    #esc键退出,输入 :wq 并回车
  6. 更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限:

    1
    2
    chown -R mysql:mysql /usr/local/mysql
    chmod -R 755 /usr/local/mysql

    如报错:chown: invalid user: ‘mysql:mysql’

    执行以下语句之后,再重新授权:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    #方法一:
    chattr -ia /etc/passwd
    chattr -ia /etc/group
    chattr -ia /etc/shadow
    chattr -ia /etc/gshadow
    yum install mysql-server

    #方法二:
    useradd -d /var/lib/mysql mysql
  7. 编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码):

    1
    2
    cd /usr/local/mysql/bin
    ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
  8. 测试启动mysql服务器

    1
    /usr/local/mysql/support-files/mysql.server start
  9. 添加软连接,并重启mysql服务

    1
    2
    3
    ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
    service mysql restart
  10. 如果root用户的密码遗失,需重置。因后端密码写死,密码需设置为固定密码。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #进入配置文件
    vi /etc/my.cnf

    #设置mysql免密
    skip-grant-tables

    #退出编辑,重启mysql
    service mysql restart

    #进入mysql数据库:
    [root@VM-4-2-centos bin]# mysql

    #切换为mysql
    mysql>use mysql;

    #如果更新密码时报错:ERROR 1396 (HY000): Operation ALTER USER failed for 'root'@'%'
    mysql> update user set host = '%' where host = 'localhost' and user = 'root';

    #刷新权限:
    mysql>flush privileges;

    #设置root用户新密码:
    mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'new_passowrd';

    #刷新权限:
    mysql>flush privileges;

    #退出mysql
    mysql>exit;

    #进入配置文件
    vi /etc/my.cnf

    #设置mysql需要密码:
    # skip-grant-tables

    #退出编辑,重启mysql
    service mysql restart

    整体流程参考:https://blog.csdn.net/Box_clf/article/details/124599166

    设置密码报错参考:https://www.cnblogs.com/223zhp/p/16208226.html

  11. 开启服务器的3306防火墙规则;

  12. 开启mysql8.0的远程连接功能:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #进入数据库中
    mysql -u root -p 'new_passowrd'

    #切换数据库
    use mysql;

    #开启root用户远程访问权限:
    GRANT ALL ON *.* TO 'root'@'%';
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的密码';

    #刷新权限
    FLUSH PRIVILEGES;

    #退出mysql
    exit;

    #重启mysql
    service mysql restart
  13. 使用navicat远程连接mysql数据库,新建数据库sxh:

    1
    配置:字符集 utf8mb4,排序规则 utf8mb4_0900_ai_ci;
  14. 迁移表结构及数据:

    1
    2
    3
    4
    1.右击连接名:shfruit;
    2.选择“运行SQL文件”;
    3.文件选择目标文件,编码默认UTF-8;
    4.点击“开始”;

参考链接:https://cloud.tencent.com/developer/article/2081683

参考链接:https://www.cnblogs.com/nnnyg/p/15609532.html

参考链接:https://blog.csdn.net/z15711187787/article/details/124986309

3.Nginx 安装

  1. 下载源码包:

    1
    2
    wget http://nginx.org/download/nginx-1.19.3.tar.gz -P /usr/local
    cd /usr/local
  2. 安装nginx依赖包:

    1
    2
    3
    4
    yum -y install gcc pcre-devel zlib-devel
    - gcc: 源码编译工具
    - pcre-devel: nginx url_rewrite 功能提供包
    - zlib-devel: nginx 压缩功能提供包
  3. 解压nginx源码,并进入源码包:

    1
    2
    tar xf nginx-1.19.3.tar.gz
    cd nginx-1.19.3
  4. 配置nginx源码:

    1
    2
    3
    4
    5
    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
    配置目的:
    1)检查环境 是否 满足安装条件 依赖解决
    2)指定安装方式 配置文件 命令文件 各种文件放哪里 开启模块功能【内置模块 三方模块】
    3)指定软件安装在那里
  5. 安装nginx:

    1
    make install
  6. nginx的启动及测试:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #配置文件测试
    /usr/local/nginx/sbin/nginx -t
    #启动
    /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
    #停止
    /usr/local/nginx/sbin/nginx -s stop
    #重载
    /usr/local/nginx/sbin/nginx -s reload
    #杀掉nginx
    /usr/local/nginx/sbin/nginx -s quit

    #测试
    使用浏览器访问nginx默认网站
    [root@zutuanxue ~]# http://服务器对应IP
  7. 修改配置文件

    1
    vi /usr/local/nginx/conf/nginx.conf

    nginx的启动及测试:

    参考链接:https://cloud.tencent.com/developer/article/2108431

二、系统前后端部署

1.后端部署

  1. 新建 /usr/local/jar 文件夹;

  2. 将投产的jar包复制到该目录下;

  3. 将自动运行脚本 start.sh 文件复制到该目录下;

  4. 执行命令:

    1
    2
    3
    4
    cd /usr/local/jar 
    ./start.sh

    #若无权限则执行 chmod u+x start.sh

2.前端部署

  1. 根目录下新建/web/mercury-sxh-service-web-prod/文件夹
  2. 前端打包dist文件部署至/web/mercury-sxh-service-web-prod/
  3. 低代码小程序的前端文件部署至/web/static/files

3.nginx配置

按照示例文件进行配置,主要是域名及默认跳转路径的调整。

https://blog.csdn.net/lin5188230/article/details/124009508

https://blog.csdn.net/weixin_41709748/article/details/127604499

三、疑难杂症报错记录

1.装了四五台服务器,突然遇到这个错误,真滴绝,找半天不知道咋解决,记录一下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#报错日志:
Caused by: java.lang.reflect.InvocationTargetException: null
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:84)
... 139 common frames omitted
Caused by: java.lang.NullPointerException: null
at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225)
at java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:107)
at java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:719)
at java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:379)
at java.base/java.security.AccessController.doPrivileged(Native Method)
at java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:324)
at java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
at java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
... 144 common frames omitted

#解决方案:
yum -y install fontconfig
fc-cache
--------------------------------------- The End ---------------------------------------