一文带你快速了解如何在Linux上部署项目
目录
- 一、手工部署项目
- 1.在IDEA中开发SpringBoot项目并打成jar包
- 2. 将jar包上传到Linux服务器
- 3. 输入指令启动SpringBoot程序
- 4. 检查防火墙,确保80端口(项目端口)对外开放,访问SpringBoot项目
- 5. 在windows访问项目
- 6. 改为后台运行SpringBoot程序,并将日志输出到日志文件 目前程序运行的问题 :
- 7. 停止SpringBoot程序(杀进程)
- 二、通过Shell脚本自动部署项目
- 1. 在Linux中安装Git
- 2. 在Linux中安装maven
- 3. 编写Shell脚本 (拉取代码、编译、打包、启动
- 4. 为用户授予执行shell脚本的权限
- 5. 执行Shell脚本
- 总结
后端环境要搭好,如jdk、mysql、tomcat、maven、git等
一、手工部署项目
1.在IDEA中开发SpringBoot项目并打成jar包

2. 将jar包上传到Linux服务器
mkdir /usr/local/app ---- 创建目录,将项目jar包放到此目录

3. 输入指令启动SpringBoot程序

4. 检查防火墙,确保80端口(项目端口)对外开放,访问SpringBoot项目

5. 在windows访问项目

6. 改为后台运行SpringBoot程序,并将日志输出到日志文件 目前程序运行的问题 :
线上程序不会采用控制台霸屏的形式运行程序,而是将程序在后台运行
线上程序不会将日志输出到控制台,而是输出到日志文件,方便运维查阅信息
- nohup命令
nohup 命令 :
英文全称 no hang up (不挂起),用于不挂断地运行指定命令,退出终端不会影响程序的运行
语法格式 :
nohup Command [ Arg …] [&]
参数说明 :
Command :要执行的命念
Arg :一些参数,可以指定输出文件
& : 让命令在后台运行
举例 :
nohup java -jar boot工程.jar &> hello.log & ---- 后台运行java -jar命令,并将日志输出到reboot.log文件

7. 停止SpringBoot程序(杀进程)


二、通过Shell脚本自动部署项目

1. 在Linux中安装Git
Git安装指令
- yum list git ---- 列出git安装包
- yum install git ---- 在线安装git

使用Git克隆远程仓库代码
- cd /usr/local/
- git clone https://gitee.com/Dongli_01/re_boot.git

2. 在Linux中安装maven
1. 将maven安装包上传到Linux

2. 解压安装包
tar -zxvf apache-maven-3.5.4-bin.tar.gz -C /usr/local

3. 在Linux中安装maven
- vim /etc/profile ---- 修改配置文件,加入如下内容
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$ JAVA_HOME/bin:$ MAVEN_HOME/bin:$PATH
$ JAVA 和 $ MAVEN 中的 $ 和 J、M之间没有空格,此处是由于MD语法显示问题空一格

加载资源,查看maven版本
source /etc/profile
mvn -version

vim /usr/local/apache-maven-3.5.4/conf/settings.xml ---- 设置一下 setting 文件,指定 maven 本地仓库的目录(repo目录需要自己创建),修改配置文件内容如下
< localRepository>/usr/local/repo localRepository>
注:< localRepository> 中的 < 和 l 以及 localRepository> 中的 / 和 l 之间没有空格,此处是由于MD语法问题空一格

3. 编写Shell脚本 (拉取代码、编译、打包、启动
- Shell 脚本简介
Shell脚本 (shell script) ,是一种Linux系统中的脚本程序。使用Shel脚本编程跟Javascript、Java编程一样,只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以了
- 编写Shell 脚本
#!/bin/sh
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=re_boot
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 准备从Git仓库拉取最新代码
cd /usr/local/re_boot
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
nohup java -jar re_boot-1.0-SNAPSHOT.jar &> re_boot.log &
echo 项目启动完成

4. 为用户授予执行shell脚本的权限
1. 权限说明
- chmod (英文全拼: change mode) 命令是控制用户对文件的权限的命令
- Linux中的权限分为: 读®、写(w)、执行(x)三种权限
- Linux的文件调用权限分为三级:文件所有者 (wner) 、用户组 (Group) 、其它用户 (Other Users)
- 只有文件的所有者和超级用户可以修改文件或目录的权限
- 要执行Shell脚本需要有对此脚本文件的执行权限,如果没有则不能执行

2. chmod命令简介
- chmod命令可以使用八进制数来指定权限
| # | 权限 | rwx |
|---|---|---|
| 7 | 读 + 写 + 执行 | rwx |
| 6 | 读 + 写 | rw - |
| 5 | 读 + 执行 | r - w |
| 4 | 只读 | r - - |
| 3 | 写 + 执行 | - wx |
| 2 | 只写 | - w - |
| 1 | 只执行 | - -x |
| 0 | 无 | - - - |
- 举例:
- chmod 777 bootStart.sh ---- 为所有用户授予读、写、执行权限
- chmod 755 bootstart.sh ---- 为文件拥有者授予读、写、执行权限,同组用户和其他用户授予读、执行权限
- chmod 210 boot5tat.h ---- 为文件拥有者授予写权限,同组用户授予执行权限,其他用户没有任何权限
- 注意 :三位数字分别代表不同用户的权限
- 第1位表示文件拥有者的权限
- 第2位表示同组用户的权限
- 第3位表示其他用户的权限
5. 执行Shell脚本


总结
欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下。
以上就是一文带你快速了解如何在Linux上部署项目的详细内容,更多关于在Linux上部署项目的资料请关注其它相关文章!
栏 目:其它服务器
本文地址:https://zz.feitang.co/server/30024.html
您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





