服务器上进行java项目部署,自己的一点总结,
一起学习,一起进步,一起成长!
【yzh2022.9】
服务器需要注意的是,【jdk、tomcat】我们不仅需要打开防火墙,同时如果是阿里云的服务器,安全组【docker..】也必须开放端口号才能进行访问
防火墙端口开了并且阿里云安全组也开放了,这个时候就可以直接访问远程了
我们开发java程序必须要的环境!
下载jdk rpm.去oralce官网下载Java Downloads | Oracle
安装java环境
# 检查当前系统是否存在java环境
java -version
# 如果有的话就卸载
rpm -qa|grep jdk # 检测jdk版本信息
rpm -e --nodeps jdk_ #强制卸载
# 卸载完毕后即可安装jdk
rpm -ivh rpm包
rpm 不需要配置环境,也不用source,这一步可以不需要做,如果想要尝试,可能会逝
但是在解压的时候,像使用docker进行springboot项目部署的时候,解压之后就需要进行环境变量的配置
3.环境变量
配置环境变量:
/etc/profile
在文件的最后面增加java的配置和window安装环境一样
vim /etc/profile
vim /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包
将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
查看和删除端口
//查看端口 firewall-cmd --zone=public --query-port=8080/tcp //删除端口 firewall-cmd --zone=public --remove-port=8080/tcp --permanent
终止jar包运行
ps -ef | grep java kill pid
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
3.启动tomcat测试 ./xxx.sh
脚本即可运行
进入Tomcat文件bin文件
# 执行
./startup.sh
# 停止
./shutdown.sh
如果防火墙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 #永久生效,没有此参数重启后失效
yum install -y yum源
基于 CentOS 7 安装
官网安装参考手册:Install Docker Engine on CentOS | Docker Documentation
确定你是CentOS7及以上版本
[root@192 Desktop]# cat /etc/redhat-release
yum安装gcc相关
yum -y install gcc
yum -y install gcc-c++
卸载旧版本
# 官网版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
设置stable镜像仓库
# 正确推荐使用国内的
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
更新yum软件包索引
yum makecache fast
安装Docker CE
yum -y install docker-ce docker-ce-cli containerd.io
启动docker
systemctl start docker
测试
docker version
docker run hello-world
# 第一次他需要自己从docker官网拉取这个项目
docker images
将项目打包成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
这些我们通过Xshell(远程控制),Xftp(上传文件)
主机访问域名就可以在浏览器中打开springboot项目的web页面了
那么大家就快去实战吧