项目部署Linux步骤

news/2024/9/28 11:11:49 标签: linux, 运维, centos, 持续部署, 1024程序员节

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)退出

#JAVA_HOME

export JAVA_HOME=/opt/module/jdk

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博客

安装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
[root@localhost nginx-1.21.0]# ./configure --prefix=/usr/local/nginx
#执行make命令
[root@localhost nginx-1.21.0]# make
#执行make install命令
[root@localhost nginx-1.21.0]# make install

常用命令

cd /usr/local/nginx/sbin      首先进入 sbin 目录
./nginx              启动 Nginx
./nginx -s stop      停止 Nginx
./nginx -s reload    重新加载 Nginx
./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

docker pull redis

docker run -itd --name redis-test -p 6379:6379 redis

设置开机自启动

systemctl enable docker

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

docker run --restart=always


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

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


 

上传项目部署

1、注册为Linux服务

  • 打包上传         xxx.jar

  • 首先需要现修改pom中spring-boot-maven-plugin配置,其实spring boot 打成jar包以后,是可以直接像shell脚本一样直接运行的,要实现这样可以直接运行,pom.xml 的build节点需要增加这样的配置:
<!--这样配置后,通过maven打出来的jar 可以直接 执行  ./aabb.jar  就能运行起来。 -->
<build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <executable>true</executable>
                </configuration>
            </plugin>
        </plugins>
    </build>
  • 在Linux上注册服务(此处基于init.d注册部署)

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

sudo ln -s /var/project/demo.jar /etc/init.d/abc
(其中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生成的日志文件乱码

 加上<charset class="java.nio.charset.Charset">UTF-8</charset>

<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
	    <file>${log.path}/sys-info.log</file>
        <!-- 循环政策:基于时间创建日志文件 -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- 日志文件名格式 -->
			<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
			<!-- 日志最大的历史 60天 -->
			<maxHistory>60</maxHistory>
		</rollingPolicy>
		<encoder>
			<pattern>${log.pattern}</pattern>
            <charset class="java.nio.charset.Charset">UTF-8</charset>
		</encoder>
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
            <!-- 过滤的级别 -->
            <level>INFO</level>
            <!-- 匹配时的操作:接收(记录) -->
            <onMatch>ACCEPT</onMatch>
            <!-- 不匹配时的操作:拒绝(不记录) -->
            <onMismatch>DENY</onMismatch>
        </filter>
	</appender>


http://www.niftyadmin.cn/n/5120290.html

相关文章

客户管理系统在选型过程中遇到的常见问题

如今很多企业都搭上了客户管理系统这趟顺风车&#xff0c;将现有规范化取得了很大成果。而也有很多企业处在观望态度&#xff0c;主要原因还在于担心客户管理系统在选型过程中遇到一些常见的问题。 接下来分享一些真实的客户需求&#xff1a; 部署系统后可以微调 “选型时&a…

Linux音频-machine类

文章目录 前言概述Machine代码分析 前言 有文章写的很好&#xff0c;转载(chao)了&#xff0c;原文连接 在openwrt源码的根目录下&#xff0c;./build_dir/toolchain-mipsel_24kc_gcc-11.2.0_musl/linux-5.10.176/Documentation/sound/soc/目录下&#xff0c;有对machine, pl…

刚办的手机号码为什么停机?那文章赶快了解一下吧。

刚买的手机卡为什么就提示停机呢&#xff1f;这种情况不知道大家有没有遇到过&#xff0c;接下来针对这个问题跟小编一块儿来了解一下吧。 ​ 新手机号刚用就停机&#xff0c;这些原因你遇到了&#xff1f; 一、充值延迟或者欠费导致的停机。 刚办的手机号停机&#xff0c;首…

C#:EXCEL列名、列序号之间互相转换

EXCEL的列名与列序号 之前的关系如下 A1B2C3D4E5F6G7H8I9J10K11L12M13N14O15P16Q17R18S19T20U21V22W23X24Y25Z26AA27AB28 /// <summary>/// 根据给的EXCEL列序号&#xff0c;得出列名字母/// </summary>/// <param name"iColNum">序号</param&…

什么是服务器节点?

一.服务器节点的概念&#xff1a; 服务器节点是一种服务器装置&#xff0c;节点服务器是针对服务器集群来说的。主要应用在WEB、FTP等等的服务上。所以节点服务器并不是单指某一种服务器。它由多个节点和管理装置整体的管理单元构成&#xff0c;其特征在于&#xff1a;各节点具…

python二次开发Solidworks:选择管理器 SelectionManager

SelectionManager 是一个专门用于管理 SOLIDWORKS 用户界面中所有选定对象的对象接口。 Solidworks中的SelectionManager是一个方便用户进行选择的工具。通过SelectionManager&#xff0c;用户可以自由选择模型中的元素&#xff0c;例如边线、草图实体等&#xff0c;这在智能选…

01.5.Binding

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

EPB功能开发与测试(基于ModelBase实现)

ModelBase是经纬恒润开发的车辆仿真软件&#xff0c;包含两个大版本&#xff1a;动力学版本、智能驾驶版本。动力学版包含高精度动力学模型&#xff0c;能很好地复现车辆在实际道路中运行的各种状态变化&#xff0c;可用于乘用车、商用车动力底盘系统算法开发、控制器仿真测试&…