部署项目 liunx
软件安装
软件安装方式
在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下:
建议nginx、MySQL、Redis等等使用docker安装,会很便捷,这里只演示JDK、ngxin手动的安装
安装JDK
上述我们介绍了Linux系统软件安装的四种形式,接下来我们就通过第一种(二进制发布包)形式来安装JDK。 JDK对应的二进制发布包:jdk-17.0.12_linux-x64_bin.tar.gz
一般为gz格式的文件。
1). 上传安装包
加粗样式
使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux
由于上述在进行文件上传时,选择的上传目录 /root,上传完毕后,我们执行指令 cd /root 切换到根目录下,查看上传的安装包。
2). 解压安装包
执行如下指令,将上传上来的压缩包进行解压,并通过-C参数指定解压文件存放目录为 /usr/local。
tar -zxvf jdk-17.0.12_linux-x64_bin.tar.gz -C /usr/local/
3). 配置环境变量
使用vim命令修改/etc/profile
文件,在文件末尾加入如下配置
export JAVA_HOME=/usr/local/jdk-17.0.12
export PATH=$JAVA_HOME/bin:$PATH
具体操作指令如下:
1). 编辑/etc/profile文件,进入命令模式vim /etc/profile2). 在命令模式中,输入指令 G , 切换到文件最后G3). 在命令模式中输入 i/a/o 进入插入模式,然后切换到文件最后一行i4). 将上述的配置拷贝到文件中export JAVA_HOME=/usr/local/jdk-17.0.12export PATH=$JAVA_HOME/bin:$PATH5). 从插入模式,切换到指令模式ESC6). 按:进入底行模式,然后输入wq,回车保存:wq
4). 重新加载profile文件
为了使更改的配置立即生效,需要重新加载profile文件,执行命令:
source /etc/profile
5). 检查安装是否成功
java -version
输出版本号即为成功~~
安装Nginx
Nginx的安装包,从官方下载下来的是c语言的源码包,我们需要自己编译安装。具体操作步骤如下:
1). 安装Nginx运行时需要的依赖
yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel
安装C语言的编译环境.
yum install gcc-c++
2). 上传Nginx的源码包(指路:nginx: download)

3). 解压源码包到当前目录
tar -zxvf nginx-1.20.2.tar.gz
4). 进入到解压目录后,执行指令
#进入解压目录
cd nginx-1.20.2#执行命令配置, 生成Makefile文件
./configure --prefix=/usr/local/nginx
5). 执行命令进行编译和安装
#编译
make#编译安装
make install
启动Nginx
进入到nginx安装目录/usr/local/nginx
,启动nginx服务
cd /usr/local/nginx/
sbin/nginx
启动完毕之后,我们可以通过 ps
指令查询当前系统中的nginx进程,从而确认nginx是否启动 。
然后,我们就可以打开浏览器,访问服务器上的nginx 。
后端项目部署
之前我们讲解Linux操作系统时,就提到,我们服务端开发工程师学习Linux系统的目的就是将来我们开发的项目绝大部分情况下都需要部署在Linux系统中。
环境准备
那现在,项目要上线了,要部署到linux服务器上了,我们也需要使用linux服务器上所安装的mysql数据库。
那此时,我们就可以再准备一份文件 application.yml
将里面的配置的mysql的ip、redis的ip地址及相关配置信息修改一下(配置Linux上安装的MySQL、Redis的信息):
#配置数据库连接信息
spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.100.128:3306/tliasusername: rootpassword: 1234servlet:multipart:max-file-size: 10MB #单个文件最大大小限制10MBmax-request-size: 100MB #单个请求最大大小限制100MBredis:host: 192.168.100.128port: 6379database: 0password: 159357timeout: 10s # 连接超时时间lettuce:pool:# 连接池中的最小空闲连接min-idle: 0# 连接池中的最大空闲连接max-idle: 8# 连接池的最大数据库连接数max-active: 8# #连接池最大阻塞等待时间(使用负值表示没有限制)max-wait: -1ms
改造完毕之后,可以在本地的idea中先启动当前项目,然后访问一下,看看工程是否正常访问。
打包部署
1). 执行 package
指令,进行打包操作,将当前的springboot项目,打成一个jar包。 (跳过测试)
2). 在Linux服务器上创建一个目录,将jar包上传到服务器 。
mkdir -p /usr/local/app
3). 通过java命令,启动项目
#进入目录/usr/local/app
cd /usr/local/app#运行jar包
java -jar tlias-web-management-0.0.1-SNAPSHOT.jar
项目启动起来之后,就可以打开浏览器测试啦**(使用服务器的ip访问)**。
后台运行
1). 后台运行程序
nohup java -jar tlias-web-management-0.0.1-SNAPSHOT.jar &> tlias.log &
通过上述指令就可以后台运行服务,服务运行之后, 所有的日志信息都会输出到 tlias.log 文件中。
2). 停止服务
#查看服务的进程信息
ps -ef|grep tlias#杀掉进程
kill -9 xxxxx
目前程序运行的问题
- 线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
- 线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
nohup命令:英文全称no hang up(不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行。
语法格式:
nohup Command[Arg...][&]
参数说明:
- Command:要执行的命令
- Arg:一些参数,可以指定输出文件
- &:让命令在后台运行
举例:
nohup java -jar hello-0.0.1-SNAPSHOT.jar &> xzy.log &
后台运行java-jar命令,并将日志输出到xzy.log文件
想要停掉项目,先查询项目占用的端口号:
ps -ef | grep java
。然后杀掉这个进制即可:kill -9 xxxx
前端项目部署
1). 将nginx的安装目录的html中的静态资源文件先删除掉。
2).将打包好的dist
静态资源文件,全部上传到nginx安装目录下的 html 目录中.
3). 修改资料中提供的 nginx.conf
配置文件,将其上传到nginx安装目录下的 conf 目录中.
4). 重新加载nginx服务的配置文件
#重新加载配置文件
sbin/nginx -s reload
5). 再次访问nginx (可能会存在浏览器缓存, 可以按Ctrl+F5,强制刷新清理缓存)
nginx服务常见操作指令:
- 启动: sbin/nginx
- 重载: sbin/nginx -s reload
- 停止: sbin/nginx -s stop
部署项目 Docker
外链图片转存中…(img-kfuwrdbH-1741622394419)]
4). 重新加载nginx服务的配置文件
#重新加载配置文件
sbin/nginx -s reload
5). 再次访问nginx (可能会存在浏览器缓存, 可以按Ctrl+F5,强制刷新清理缓存)
nginx服务常见操作指令:
- 启动: sbin/nginx
- 重载: sbin/nginx -s reload
- 停止: sbin/nginx -s stop
部署项目 Docker
todo