• 项目部署Linux步骤


    1、最小化安装centos7-环境准备

    安装epel-release

    安装epel-release,因为有些rpm包在官方库中找不到。前提是保证可以联网

    yum install -y epel-release

    修改IP

    net-tools

    • net-tool:工具包集合,包含ifconfig等命令
    yum install -y net-tools

    vim

    yum install -y vim

    拖拽上传文件

    yum -y install lrzsz

    使用方法:

    输入命令rz选择文件上传或直接拖拽文件。目前好像只能安装xshell使用。

    jdk

    卸载虚拟机自带的JDK

    注意:如果你的虚拟机是最小化安装不需要执行这一步。

    [root@hadoop100 ~]# rpm -qa | grep -i java | xargs -n1 rpm -e --nodeps

    • rpm -qa:查询所安装的所有rpm软件包
    • grep -i:忽略大小写
    • xargs -n1:表示每次只传递一个参数
    • rpm -e –nodeps:强制卸载软件

    安装

    想办法将JDK安装包导入到虚拟机的/opt/software文件夹下面

    解压JDK安装包到/opt/module目录下

    tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/

    改名

    mv jdk1.8.0_212/ jdk

    配置JDK环境变量

    (1)新建/etc/profile.d/my_env.sh文件

    sudo vim /etc/profile.d/my_env.sh

    添加如下内容,然后保存(:wq)退出

    1. #JAVA_HOME
    2. export JAVA_HOME=/opt/module/jdk
    3. export PATH=$PATH:$JAVA_HOME/bin

    (2)让环境变量生效

    source /etc/profile.d/my_env.sh

    6)测试JDK是否安装成功

     java -version

    如果能看到以下结果、则Java正常安装

    java version "1.8.0_212"

    防火墙

    关闭防火墙,关闭防火墙开机自启

    systemctl stop firewalld
    systemctl disable firewalld.service

    注意:在企业开发时,通常单个服务器的防火墙时关闭的。公司整体对外会设置非常安全的防火墙

    2、项目环境安装

    安装Docker

    为了后续更方便的安装软件,先安装一个docker,可以一键拉取镜像,启动一个容器。

    centos安装docker详细步骤-CSDN博客

     自启动容器

    创建容器时,设置自动启动容器,  添加--restart=always

    docker run --restart=always


    如果创建时未指定 --restart=always ,可通过update 命令设置

    docker update --restart=always 容器id(或者容器名称)

    安装kingbase

    配置内核参数
    为了避免在 KingbaseES 安装和使用过程中出现问题,您需要检查和设置内核参数。
    编辑 /etc/sysctl.conf 文件,备份是/etc/sysctl.conf.bak
    资源使用参数
    Linux 资源限制配置文件是 /etc/security/limits.conf 。限制用户可使用的资源数量对系统的稳定性非常重要。您 可以通过调整资源限制数量改进系统性能。limits.conf 文件如下所示
    备份: /etc/security/limits.conf.bak
    如果想启动或停止数据库服务,进入 ${ 安装目录 }/Server/bin 目录执行如下命令:
    # 启动服务
    sys_ctl -w start -D ${Data 文件目录} -l "${Data 文件目录}/sys_log/startup.log"
    # 停止服务
    sys_ctl stop -m fast -w -D ${Data 文件目录}

    安装nginx

    yum install -y wget
    wget http://nginx.org/download/nginx-1.16.1.tar.gz
    yum -y install gcc openssl openssl-devel pcre-devel zlib zlib-devel
    
    1. [root@localhost nginx-1.21.0]# ./configure --prefix=/usr/local/nginx
    2. #执行make命令
    3. [root@localhost nginx-1.21.0]# make
    4. #执行make install命令
    5. [root@localhost nginx-1.21.0]# make install

    常用命令

    1. cd /usr/local/nginx/sbin 首先进入 sbin 目录
    2. ./nginx 启动 Nginx
    3. ./nginx -s stop 停止 Nginx
    4. ./nginx -s reload 重新加载 Nginx
    5. ./nginx -v 查看 Nginx 版本

    设置开机自启动

    第一步:进入到/lib/systemd/system/目录

    1

    [root@iz2z init.d]# cd /lib/systemd/system

    第二步:创建nginx.service文件,并编辑

    1

    # vim nginx.service

    内如如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    [Unit]

    Description=nginx service

    After=network.target 

        

    [Service] 

    Type=forking 

    ExecStart=/usr/local/nginx/sbin/nginx

    ExecReload=/usr/local/nginx/sbin/nginx -s reload

    ExecStop=/usr/local/nginx/sbin/nginx -s quit

    PrivateTmp=true 

        

    [Install] 

    WantedBy=multi-user.target

    • Description:描述服务

    • After:描述服务类别

    • [Service]服务运行参数的设置

    • Type=forking是后台运行的形式

    • ExecStart为服务的具体运行命令

    • ExecReload为重启命令

    • ExecStop为停止命令

    • PrivateTmp=True表示给服务分配独立的临时空间

    • 注意:[Service]的启动、重启、停止命令全部要求使用绝对路径

    • [Install]运行级别下服务安装的相关设置,可设置为多用户,即系统运行级别为3

    保存退出。

    第三步:加入开机自启动

    1

    # systemctl enable nginx

    如果不想开机自启动了,可以使用下面的命令取消开机自启动

    1

    # systemctl disable nginx

    第四步:服务的启动/停止/刷新配置文件/查看状态

    1

    2

    3

    4

    5

    6

    7

    # systemctl start nginx.service          启动nginx服务

    # systemctl stop nginx.service           停止服务

    # systemctl restart nginx.service        重新启动服务

    # systemctl list-units --type=service     查看所有已启动的服务

    # systemctl status nginx.service          查看服务当前状态

    # systemctl enable nginx.service          设置开机自启动

    # systemctl disable nginx.service         停止开机自启动

    一个常见的错误

    Warning: nginx.service changed on disk. Run 'systemctl daemon-reload' to reload units.

    直接按照提示执行命令systemctl daemon-reload 即可。

    安装Redis

    1. docker pull redis
    2. mkdir -p /mydata/redis/conf
    3. touch /mydata/redis/conf/redis.conf

    -d redis 以redis镜像创建容器,redis-server /etc/redis/redis.conf 让redis服务启动时以 /etc/redis/redis.conf配置文件启动。

    1. docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
    2. -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
    3. -d redis redis-server /etc/redis/redis.conf

    安装mysql

    docker run -d -p 3306:3306 --privileged=true -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456  --name mysql mysql:5.7

    修改配置:

    1. [root@linjl conf]# cd /mydata/mysql/conf
    2. [root@linjl conf]# vim my.cnf
    1. [client]
    2. default_character_set=utf8
    3. [mysql]
    4. default_character_set=utf8
    5. [mysqld]
    6. init_connect='SET collation_connection = utf8_unicode_ci'
    7. init_connect='SET NAMES utf8'
    8. character-set-server = utf8
    9. collation-server = utf8_unicode_ci
    10. skip-character-set-client-handshake
    11. skip-name-resolve

    重启:

    docker restart mysql

    上传项目部署

    1、注册为Linux服务

    • 打包上传         xxx.jar

    • 首先需要现修改pom中spring-boot-maven-plugin配置,其实spring boot 打成jar包以后,是可以直接像shell脚本一样直接运行的,要实现这样可以直接运行,pom.xml 的build节点需要增加这样的配置:
    1. <build>
    2. <plugins>
    3. <plugin>
    4. <groupId>org.springframework.bootgroupId>
    5. <artifactId>spring-boot-maven-pluginartifactId>
    6. <configuration>
    7. <executable>trueexecutable>
    8. configuration>
    9. plugin>
    10. plugins>
    11. build>
    • 在Linux上注册服务(此处基于init.d注册部署)

    将打好的jar包放到Linux任意目录 eg: /var/project/

    1. sudo ln -s /var/project/demo.jar /etc/init.d/abc
    2. (其中demo为jar包名称,abc为服务名称)

    之后就可以用 service XXX start 命令来启动jar包

    启动/关闭 服务
    service abc start/stop
    查看状态
    service abc status
    设置开机自启
    chkconfig abc on

    报错

    1、client_encoding

    项目启动报错:

    nested exception is com.kingbase8.util.KSQLException: ������������: ������ "client_encoding" ������������: "ANSI_X3.4-1968"

    字符集和数据库的不一致:

    url: jdbc:kingbase8://192.168.31.90:54321/qjjk?clientEncoding=UTF-8

    2、Unable to find Java

    在这里插入图片描述
    原因:jar包同文件夹缺少同名配置文件,文件名相同,扩展名为.conf
    解决:新增.conf文件,内容如下:

    JAVA_HOME=/usr/java/jdk1.8.0_301

    3、logback.xml生成的日志文件乱码

     加上UTF-8

    1. <appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
    2. <file>${log.path}/sys-info.logfile>
    3. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    4. <fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.logfileNamePattern>
    5. <maxHistory>60maxHistory>
    6. rollingPolicy>
    7. <encoder>
    8. <pattern>${log.pattern}pattern>
    9. <charset class="java.nio.charset.Charset">UTF-8charset>
    10. encoder>
    11. <filter class="ch.qos.logback.classic.filter.LevelFilter">
    12. <level>INFOlevel>
    13. <onMatch>ACCEPTonMatch>
    14. <onMismatch>DENYonMismatch>
    15. filter>
    16. appender>

  • 相关阅读:
    【设计模式深度剖析】【2】【结构型】【装饰器模式】| 以去咖啡馆买咖啡为例 | 以穿衣服出门类比
    第十三届蓝桥杯 C++ B 组省赛 F 题——统计子矩阵 (AC)
    企业如何选择低代码开发平台
    Linux学习笔记14 - 多线程编程(一)
    springboot系列(二十八):如何实现excel携带图片导出?这你得会|超级详细,建议收藏
    k8s-master 高可用
    TiDB Dashboard 实例性能分析 - 持续分析页面
    NEDC、WLTC、CLTC,三种汽车能源消耗测试标准有什么区别?
    Ceph分布式存储详解
    .NET 6 跨服务器联表查询, MySql、Oracle、SqlServer等相互联表
  • 原文地址:https://blog.csdn.net/weixin_52938172/article/details/133989310