Linux部署springboot项目(从安装java开始)
Linux部署springboot项目
- 一 安装jdk
- 方式一:yum方式下载安装
- 方式二:官网下载jdk,ftp上传服务器解压安装
- 二 部署SpingBoot工程
- 一 新建SpingBoot工程
- 二 在虚拟机上运行SpingBoot工程
- 三 解决虚拟机上运行的程序,window访问不了!
一 安装jdk
方式一:yum方式下载安装
- 查找java相关的列表
yum -y list java* 或者
yum search jdk
2. 可以查看当前Linux系统中已经安装了那些java相关的软件包
如果没有安装java的可以使用一下方式自动安装
yum install java-1.8.0-openjdk.x86_64
java -version 检查是否安装成功
3. 通过yum安装的默认路径为:/usr/lib/jvm
4. 将jdk的安装路径加入到JAVA_HOME,打开/etc/profile文件,
vi /etc/profile
在文件末尾添加:
JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64 具体名称根据安装包版本修改
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH
修改/etc/profile之后让其生效
. /etc/profile (注意 . 之后应有一个空格)
方式二:官网下载jdk,ftp上传服务器解压安装
- 进入 Oracle 官方网站 下载合适的 JDK 版本,我这里使用的是jdk-8u351-linux-x64.tar.gz
- 创建目录,上传
mkdir /usr/local/java
cd /usr/local/java
上传:下载完后执行下面rz这个命令然后选择到下载的文件后通过xshell上传上去 或者通过其他软件上传到服务器/usr/local/src目录,本文安装了finaShell可以直接拖入该目录下
rz
- 解压
tar -zxvf jdk-8u351-linux-x64.tar.gz
4.设置环境变量
vi /etc/profile
在文件末尾添加:
export JAVA_HOME=/usr/local/java/jdk1.8.0_351
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
修改/etc/profile之后让其生效
source /etc/profile
java -version 测试
在修改/etc/profile的时候可能会出现这种情况
可以通过finalShell手动修改该文件,并source命令执行,同样的效果!
二 部署SpingBoot工程
一 新建SpingBoot工程
- 新建Springboot工程,
运行Application启动类,在浏览器端检查其是否正常
- 使用maven进行工程打包
通过打包的方式将SpingBoot工程封装成jar,然后使用运行Jar文件的通常的方法启动工程 - 运行Jar文件时通常的方法
由于SpingBoot内嵌tomcat,不需要打包成war包。只需要掌握两种常用的运行jar包方法即可。
1 java -jar test.jar
这种方法运行之后,没法切出去执行其他任务,有没有办法让Jar在后台运行
2 nohup java -jar test.jar &
//nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
//当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中
//除非另外指定了输出文件。
3 nohup java -jar test.jar >temp.txt &
//这种方法会把日志文件输入到你指定的文件中,没有则会自动创建
- jobs命令和 fg命令,操作后台运行程序
jobs
//那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。
//如果想将某个作业调回前台控制,只需要 fg + 编号即可。fg 2
- 查看某端口占用的线程的pid
netstat -nlp | grep :8080
二 在虚拟机上运行SpingBoot工程
- 上传jar包,可以使用rz命令,也可以使用ftp工具传
- 运行jar包
- 想要后台运行,请看前面描述的运行jar包方法!!!
三 解决虚拟机上运行的程序,window访问不了!
- 在虚拟机中运行程序,分别检查在Linux和windows下的访问情况
首先使用Linux浏览器访问虚拟机中运行程序的8080端口:正常访问
然后使用windows浏览器访问虚拟机中运行程序的8080端口:访问失败
- 问题分析:可能是Linux没有开放8080端口的开放权
首先使用ps -ef | grep java命令查看java的运行情况
在程序运行正常的情况下,我们需要8080端口对其进行访问,第一步已经证明虚拟机内部访问是没有问题的,接下来需要查看虚拟机对外的开放情况。使用iptables命令查看端口开放的情况,从下图可以看出,开放的端口为数不多,当然截图不全,还有22端口也是出于accept状态。
iptables -L -n
- 端口权限开放
使用以下命令,开通8080(自选)权限
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
可以发现,windows成功访问
这里收藏一个大佬针对Linux下iptables 禁止端口和开放端口的博文:
链接赴上: Linux下iptables 禁止端口和开放端口
Linux部署springboot项目(从安装java开始)
Linux部署springboot项目
- 一 安装jdk
- 方式一:yum方式下载安装
- 方式二:官网下载jdk,ftp上传服务器解压安装
- 二 部署SpingBoot工程
- 一 新建SpingBoot工程
- 二 在虚拟机上运行SpingBoot工程
- 三 解决虚拟机上运行的程序,window访问不了!
一 安装jdk
方式一:yum方式下载安装
- 查找java相关的列表
yum -y list java* 或者
yum search jdk
2. 可以查看当前Linux系统中已经安装了那些java相关的软件包
如果没有安装java的可以使用一下方式自动安装
yum install java-1.8.0-openjdk.x86_64
java -version 检查是否安装成功
3. 通过yum安装的默认路径为:/usr/lib/jvm
4. 将jdk的安装路径加入到JAVA_HOME,打开/etc/profile文件,
vi /etc/profile
在文件末尾添加:
JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64 具体名称根据安装包版本修改
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH
修改/etc/profile之后让其生效
. /etc/profile (注意 . 之后应有一个空格)
方式二:官网下载jdk,ftp上传服务器解压安装
- 进入 Oracle 官方网站 下载合适的 JDK 版本,我这里使用的是jdk-8u351-linux-x64.tar.gz
- 创建目录,上传
mkdir /usr/local/java
cd /usr/local/java
上传:下载完后执行下面rz这个命令然后选择到下载的文件后通过xshell上传上去 或者通过其他软件上传到服务器/usr/local/src目录,本文安装了finaShell可以直接拖入该目录下
rz
- 解压
tar -zxvf jdk-8u351-linux-x64.tar.gz
4.设置环境变量
vi /etc/profile
在文件末尾添加:
export JAVA_HOME=/usr/local/java/jdk1.8.0_351
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
修改/etc/profile之后让其生效
source /etc/profile
java -version 测试
在修改/etc/profile的时候可能会出现这种情况
可以通过finalShell手动修改该文件,并source命令执行,同样的效果!
二 部署SpingBoot工程
一 新建SpingBoot工程
- 新建Springboot工程,
运行Application启动类,在浏览器端检查其是否正常
- 使用maven进行工程打包
通过打包的方式将SpingBoot工程封装成jar,然后使用运行Jar文件的通常的方法启动工程 - 运行Jar文件时通常的方法
由于SpingBoot内嵌tomcat,不需要打包成war包。只需要掌握两种常用的运行jar包方法即可。
1 java -jar test.jar
这种方法运行之后,没法切出去执行其他任务,有没有办法让Jar在后台运行
2 nohup java -jar test.jar &
//nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
//当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中
//除非另外指定了输出文件。
3 nohup java -jar test.jar >temp.txt &
//这种方法会把日志文件输入到你指定的文件中,没有则会自动创建
- jobs命令和 fg命令,操作后台运行程序
jobs
//那么就会列出所有后台执行的作业,并且每个作业前面都有个编号。
//如果想将某个作业调回前台控制,只需要 fg + 编号即可。fg 2
- 查看某端口占用的线程的pid
netstat -nlp | grep :8080
二 在虚拟机上运行SpingBoot工程
- 上传jar包,可以使用rz命令,也可以使用ftp工具传
- 运行jar包
- 想要后台运行,请看前面描述的运行jar包方法!!!
三 解决虚拟机上运行的程序,window访问不了!
- 在虚拟机中运行程序,分别检查在Linux和windows下的访问情况
首先使用Linux浏览器访问虚拟机中运行程序的8080端口:正常访问
然后使用windows浏览器访问虚拟机中运行程序的8080端口:访问失败
- 问题分析:可能是Linux没有开放8080端口的开放权
首先使用ps -ef | grep java命令查看java的运行情况
在程序运行正常的情况下,我们需要8080端口对其进行访问,第一步已经证明虚拟机内部访问是没有问题的,接下来需要查看虚拟机对外的开放情况。使用iptables命令查看端口开放的情况,从下图可以看出,开放的端口为数不多,当然截图不全,还有22端口也是出于accept状态。
iptables -L -n
- 端口权限开放
使用以下命令,开通8080(自选)权限
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
可以发现,windows成功访问
这里收藏一个大佬针对Linux下iptables 禁止端口和开放端口的博文:
链接赴上: Linux下iptables 禁止端口和开放端口