服务器上进行java项目部署

57次阅读

🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀

服务器上进行 java 项目部署 , 自己的一点总结 ,

一起学习 , 一起进步 , 一起成长 !

🛸🛸🛸🛸🛸🛸🛸🛸🛸🛸

【yzh2022.9】

服务器需要注意的是 ,【jdk、tomcat】我们不仅需要打开防火墙 , 同时如果是阿里云的服务器 , 安全组【docker..】也必须开放端口号才能进行访问

防火墙端口开了并且阿里云安全组也开放了, 这个时候就可以直接访问远程了

1.JDK 安装

我们开发 java 程序必须要的环境!

  1. 下载 jdk rpm. 去 oralce 官网下载 Java Downloads | Oracle

  2. 安装 java 环境

 # 检查当前系统是否存在 java 环境 java -version # 如果有的话就卸载 rpm -qa|grep jdk # 检测 jdk 版本信息 ​ rpm -e --nodeps jdk_ #强制卸载 ​ # 卸载完毕后即可安装 jdk rpm -ivh rpm 包 

服务器上进行java项目部署插图

rpm 不需要配置环境 , 也不用 source, 这一步可以不需要做 , 如果想要尝试 , 可能会逝

但是在解压的时候 , 像使用 docker 进行 springboot 项目部署的时候 , 解压之后就需要进行环境变量的配置

3. 环境变量

配置环境变量: /etc/profile 在文件的最后面增加 java 的配置和 window 安装环境一样

vim /etc/profilevim /etc/profile 进入配置文件

末尾添加

 export JAVA_HOME=/usr/java/jdk1.8.0_341-amd64 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib

保存退出即可

刷新配置 source /etc/profile




测试 jdk 1. 用文本编辑器新建一个 test.java 文件 , 在其中输入以下代码并保存:

 public class test {public static void main(String args[]){System.out.println("Linux-Jdk"); } }

2. 编译: 在 shell 终端执行命令 javac test.java

3. 运行: 在 shell 终端执行命令 java test

当 shell 下出现“Linux-Jdk”字样则 jdk 运行正常。

发布一个项目

 # 开启防火墙 Firewalls-cmd --zone=public --add-port=9000/tcp -permanent # 重启防火墙 systemctl restart firewalld.service # 查看所有开启的端口, 如果是阿里云, 需要配置安全组规则! firewall-cmd --list-ports

执行 :

java -jar jar 包

nohup 后台运行

  • 使用 maven install 打 jar 包

服务器上进行java项目部署插图1

  • 将 jar 包传到 linux 中

  • 在 jar 包所在目录下创建 nohup.out 日志文件, 用于输出项目启动的日志输出

  • 让 jar 包在后台运行

 //nohup 意思是不挂断运行命令, 当账户退出或终端关闭时, 程序仍然运行 // 当用 nohup 命令执行作业时 , 缺省情况下该作业的所有输出被重定向到 nohup.out 的文件中 // 除非另外指定了输出文件。nohup java -jar SpringBoot-03-web2-0.0.1-SNAPSHOT.jar &
  • 查看 nohup.out 文件

//-f 循环读取 //-n< 行数 > 显示文件的尾部 n 行内容 tail -fn 10000 nohup.out -- 查看文件 
  • 防火墙相关命令

 启动 : systemctl start firewalld 关闭 : systemctl stop firewalld 查看状态 : systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 : systemctl enable firewalld
  • 开启一个端口

// 添加 firewall-cmd --zone=public --add-port=8080/tcp --permanent // 添加端口外部访问权限 firewall-cmd --add-port=8080/tcp // 重新载入 , 添加端口后重新载入才能起作用 firewall-cmd --reload

服务器上进行java项目部署插图2

  • 查看和删除端口

// 查看端口 firewall-cmd --zone=public --query-port=8080/tcp // 删除端口 firewall-cmd --zone=public --remove-port=8080/tcp --permanent
  • 终止 jar 包运行

ps -ef | grep java kill pid

2.TOMCAT 安装

ssm war 就需要放到 tomcat 中运行!

1. 下载 tomcat. 官网下载 Apache Tomcat® – Welcome!

apache-tomcat-9.0.65.tar.gz

2. 解压这个文件

tar -zxvf apache-tomcat-9.0.65.tar.gz

服务器上进行java项目部署插图3

3. 启动 tomcat 测试 ./xxx.sh 脚本即可运行

进入 Tomcat 文件 bin 文件

# 执行 ./startup.sh # 停止 ./shutdown.sh

服务器上进行java项目部署插图4

如果防火墙 8080 端口开了并且阿里云安全组也开放了, 这个时候就可以直接访问远程了!

# 查看 firewall 服务状态 systemctl status firewalld 启动 : systemctl start firewalld 关闭 : systemctl stop firewalld 查看状态 : systemctl status firewalld 开机禁用 : systemctl disable firewalld 开机启用 : systemctl enable firewalld # 查看防火墙规则 firewall-cmd --list-all # 查看全部信息 firewall-cmd --list-ports # 只看端口信息 # 开启端口 开端口命令 : firewall-cmd --zone=public --add-port=8080/tcp --permanent 重启防火墙 : systemctl restart firewalld.service 命令含义 --zone #作用域 --add -port-80/tcp #添加端口, 格式为: 端口 / 通讯协议 --permanent #永久生效, 没有此参数重启后失效 

3.DOCKER

1、YUM 安装

yum install -y yum 源 

基于 CentOS 7 安装

  1. 官网安装参考手册 :Install Docker Engine on CentOS | Docker Documentation

  2. 确定你是 CentOS7 及以上版本

    [root@192 Desktop]# cat /etc/redhat-release
  3. yum 安装 gcc 相关

    yum -y install gcc yum -y install gcc-c++
  4. 卸载旧版本

    # 官网版本 yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine

  5. 安装需要的软件包

    yum install -y yum-utils device-mapper-persistent-data lvm2

  6. 设置 stable 镜像仓库

    # 正确推荐使用国内的 yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  7. 更新 yum 软件包索引

    yum makecache fast
  8. 安装 Docker CE

    yum -y install docker-ce docker-ce-cli containerd.io
  9. 启动 docker

    systemctl start docker
  10. 测试

docker version docker run hello-world # 第一次他需要自己从 docker 官网拉取这个项目 docker images

2、docker 部署 java

将项目打包成 jar 包

编写 Dockerfile 脚本

# 基于 centos:7 基础镜像构建 FROM centos:7 # 创建目录 RUN mkdir /usr/local/docker # 进入该目录下 RUN cd /usr/local/docker # 将包添加到 /usr/local/docker 目录下并解压 ADD jdk-8u341-linux-x64.tar.gzz /usr/local/docker # 环境变量配置 ENV JAVA_HOME=/usr/local/docker/jdk-8 ENV CLASSPATH=.:$JAVA_HOME/lib ENV PATH=.:$JAVA_HOME/bin:$JAVA_HOME/lib:$PATH # 输出 Java 版本信息 CMD ["java","-version"]

如果是 jdk-17

我们需要单独构建 jdk17, 上面的包也需要改成 17 的版本【jdk-17_linux-x64_bin.tar.gz】

docker build -t jdk:17

# 设置本镜像需要使用的基础镜像 FROM java:8 # FROM jdk:17 # 把 jar 包添加到镜像中 ADD study-process-0.0.1-SNAPSHOT.jar /app.jar # 暴露的端口 EXPOSE 3030 RUN bash -c 'touch /app.jar' # 容器启动命令 ENTRYPOINT ["java","-jar","/app.jar"] # 设置时区 RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

构建镜像

将 jar 包和脚本一同放入服务器中 , 打上标签构建

docker build -t study-process:1.0.0 .

运行镜像

docker run -d -p 3029:3029 镜像 id

进入运行的容器

运行后根据 docker ps 查询 id 进入

docker exec -it 容器 id /bin/bash

4、最后

这些我们通过 Xshell( 远程控制 ),Xftp( 上传文件 )

主机访问域名就可以在浏览器中打开 springboot 项目的 web 页面了

🤩 🥳 😏 那么大家就快去实战吧 😊 🙃 😉

原文链接:https://blog.csdn.net/AN_NI_112/article/details/127232575

正文完
 
追风者
版权声明:本站原创文章,由 追风者 2024-01-02发表,共计4230字。
转载说明:声明:本站内容均来自互联网,归原创作者所有,如有侵权必删除。 本站文章皆由CC-4.0协议发布。