Linux服务器如何部署java项目

 更新时间:2024年01月30日 08:54:17   作者:三毛村滴雪鱼粉  
这篇文章主要介绍了Linux服务器如何部署java项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

安装JDK

在官网下载JDK

我下载的是 jdk-8u341-linux-x64.tar.gz

一、上传

在/usr/local中创建java文件夹

mkdir /usr/local/java

把JDK上传到java目录下

可以用ls命令查看一下

二、解压

输入命令

tar -xzvf jdk-8u341-linux-x64.tar.gz

jdk-8u341-linux-x64.tar.gz是我下载的JDK文件名,此处输入自己下载对应的文件名,解压之后可以看到/usr/local/java目录下多出了一个文件夹

解压之后JDK的安装包可以删掉

三、配置JAVA环境变量

java命令测试,直接输入java,出现-bash:java:command nor found说明没有配置java环境变量

需要配置的环境变量

项目Value备注
PATH指定命令搜索路径,shell执行命令时会到PATH所指定的路径中查看能否找到命令程序jdk的/bin中包含经常要访问的javac、java、javadoc等命令,设置后可以在任何目录下执行该命令
CLASSPATH指定类搜索路径,JVM通过CLASSPATH来寻找类设置jdk的/lib中的dt.jar和tools.jar以及当前目录"."给CLASSPATH
JAVA_HOME指向jdk安装目录Eclipse、NetBeans、Tomcat等软件会通过JAVA_HOME来使用jdk
使用vim编辑
vim /etc/profile

或使用文本编辑器打开

修改.bash_profile或者/etc/profile在末尾引入环境变量,JAVA_HOME的值填写自己解压包的路径

export JAVA_HOME=/usr/local/java/jdk1.8.0_341
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

完成上述修改后,执行命令:

source /etc/profile

或者重启

输入命令查看java版本,返回版本信息说明环境变量设置生效

安装MySQL

我是在docker环境部署的MySQL,docker部署框架支持mysql服务器的简单安装和配置。

一、安装Docker环境

#安装Docker
yum install docker -y
#启动Docker服务
service docker start

因为Docker在线安装镜像是从国外的DockerHub网站下载文件,所以速度超级慢,所以我们要给Docker设置加速器。

我用的是腾讯云主机,所以设置腾讯云加速器是最快的。

打开/etc/docker/daemon.json文件,然后设置成如下内容:

{
	"registry-mirrors":["https:mirror.ccs.tencentyun.com"]
}

重新启动Docker服务,加速器才能生效

service docker restart

二、安装MySQL

利用刚才设置的加速器,我们可以在线安装MySQL镜像,这里我下载8.0.23版本的MySQL数据库

docker pull mysql:8.0.23

创建容器的时候,我们需要把MySQL容器内的数据目录映射到CentOS系统上面。如果MySQL容器挂掉了,数据库文件不会丢失。我们新建一个MySQL容器,挂载上这个数据目录就又能正常使用MySQL了。

Docker会给每个容器创建一个 虚拟的网卡,然后分配一个Docker 内网IP地址。假设A容器部署了MySQL,B容器中的Java程序想要访问A容器的MySQL,JDBC路径就要写A容器的Docker内网IP地址,略显麻烦。

这次把容器设置成 host模式,就是不让Docker为容器创建虚拟网卡,Docker容器直接使用CentOS的网卡,所以A容器中localhost代表CentOS,B容器中的localhost也代表CentOS,两个容器相互访问,URL地址写localhost即可。

例如B容器中JDBC路径的host写localhost,就能访问到A容器里面的MySQL。

这样我们部署的若干容器,相互访问就简单多了。

MySQL容器我分配内存空间是500M,如果将来觉得不够用,删除容器,再创建新容器的时候分配更大的内存。

而且只要挂载上那些文件目录,MySQL的数据就不会丢失。

docker run -it -d --name mysql --net=host \			//创建容器名字叫mysql host模式
-m 500m -v /root/mysql/data:/var/lib/mysql \		//分配内存500M。做文件夹映射,MySQL默认数据目录是/var/lib/mysql 映射到CentOS/root/mysql/data文件夹上
-v /root/mysql/config:/etc/mysql/conf.d \			//映射mysql配置文件
-e MYSQL_ROOT_PASSWORD=abc123456 \					//传入参数,root账号的密码
-e TZ=Asia/Shanghai mysql:8.0.23					//mysql时区

\是换行,可以把命令分成多行来写

修改mysql密码

进入容器并以root用户登录

docker exec -it mysql bash
mysql -uroot -p
abc123456
//修改密码,与5.7版本不同
ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'xfx24805861WSQ';	
FLUSH PRIVILEGES;

安装Tomcat

官网下载地址

在/usr/local/下创建tomcat文件夹,把压缩包上传到该目录下

tar -xzvf apache-tomcat-9.0.65.tar.gz

启动Tomcat

启动前,可以在tomcat9的conf目录下,找到server.xml文件修改tomcat的启动端口号

进入tomcat服务器的bin目录下输入命令

./startup.sh

然后就可以通过ip:port访问tomcat了

如果访问不了,需要查看云服务器设置端口号允许访问,我用的是腾讯云,在防火墙中设置

配置好就可以访问到tomcat了

关闭Tomcat服务,在bin目录下执行./shutdown.sh命令

打包SpringBoot项目部署到Tomcat

我的项目是打成了war包,放到Tomcat的webapps文件夹中,启动tomcat会自动解压到同名文件夹,访问路径也是这个文件夹名。

想要修改访问路径,修改conf文件夹中的server.xml配置文件

docBase中的属性值是原文件夹,path中的属性值是修改后的访问路径

最后就可以访问到自己的项目了

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring-Security对HTTP相应头的安全支持方式

    Spring-Security对HTTP相应头的安全支持方式

    这篇文章主要介绍了Spring-Security对HTTP相应头的安全支持方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Java开发完整短信验证码功能的全过程

    Java开发完整短信验证码功能的全过程

    利用短信验证码进行身份验证是目前互联网众多产品常用的一种方式,那么这种短信验证功能是如何实现的呢,下面这篇文章主要给大家介绍了关于Java开发完整短信验证码功能的相关资料,需要的朋友可以参考下
    2021-10-10
  • 关于Poi读取Excel引发内存溢出问题的解决方法

    关于Poi读取Excel引发内存溢出问题的解决方法

    这篇文章主要给大家介绍了关于Poi读取Excel引发内存溢出问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
    2017-08-08
  • Jenkins+maven持续集成的实现

    Jenkins+maven持续集成的实现

    这篇文章主要介绍了Jenkins+maven持续集成的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • springBoot  创建定时任务过程详解

    springBoot 创建定时任务过程详解

    这篇文章主要介绍了springBoot 创建定时任务过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java中的RMI使用方法详解

    Java中的RMI使用方法详解

    这篇文章主要介绍了Java中的RMI使用方法,RMI是Java提供的一个完善的简单易用的远程方法调用框架,采用客户服务器通信方式,在服务器上部署了提供各种服务的远程对象,下面我们来详细讲解
    2023-10-10
  • Spring Boot部署到Tomcat过程中遇到的问题汇总

    Spring Boot部署到Tomcat过程中遇到的问题汇总

    这篇文章主要给大家分享了关于Spring Boot部署到Tomcat过程中遇到的一些问题,文中将解决的方法介绍非常详细,对同样遇到这个问题的朋友具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03
  • Java中多线程的ABA场景问题分析

    Java中多线程的ABA场景问题分析

    这篇文章主要为大家介绍了Java中多线程的ABA场景问题分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • 使用Java如何将图片转成Base64编码,并压缩至40k

    使用Java如何将图片转成Base64编码,并压缩至40k

    这篇文章主要介绍了使用Java如何将图片转成Base64编码,并压缩至40k问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Java实现简单的RPC框架的示例代码

    Java实现简单的RPC框架的示例代码

    本篇文章主要介绍了Java实现简单的RPC框架的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11

最新评论