Java Web 程序在 Linux 上的部署 - 指南

目录

前言

一、搭建部署环境

1. apt 的常用命令

2. 安装 JDK

3. 安装 mysql

二、部署 Web 项目到 Linux

1. 环境配置

2. 构建项目并打包

3. 上传 jar 包到服务器

4. 解决端口号冲突


前言

本文介绍了在Linux系统中部署Web项目的完整流程。首先讲解了使用apt命令管理软件包、安装JDK和MySQL的基本操作;然后详细说明了如何通过Maven配置多环境参数、打包项目并上传到服务器;最后介绍了后台运行程序、处理端口冲突的方法。整个部署过程涵盖了从基础环境搭建到项目上线的关键步骤,为开发者提供了实用的Linux部署指导。


一、搭建部署环境

使用 apt 在 Linux 环境中安装,更新,删除和管理软件包;

1. apt 的常用命令

# 列出所有软件包
apt list
# 更新软件包数据库
apt-get update
# 安装软件包
apt install package_name
# 移除软件包
apt remove package_name
apt purge package_name

2. 安装 JDK

安装软件前,先更新包管理器中的软件资源:

apt-get updtae

查找及安装 JDK:

# 查找 jdk
apt list | grep "jdk"
# 安装 jdk
apt install openjdk-17-jdk
# 查看 jdk 版本
java -version

3. 安装 mysql

# 查找安装包
apt list | grep "mysql-server"
# 安装 mysql
apt install mysql-server
# 查看 mysql 状态
systemctl status mysql

二、部署 Web 项目到 Linux

1. 环境配置

为了避免在开发环境中和生产环境中切换时,频繁的修改程序,因此配置文件通常写两个,程序打包时,选择使用哪个配置文件即可,避免修改程序;

开发环境使用 dev 配置文件,线上环境使用 prod 配置文件;两个文件的格式是相同的,内容需要根据数据库的配置填写不同的内容;

以 dev 为例:

spring:
  application:
    name: spring-blog
  # 数据库配置
  datasource:
    url: jdbc:mysql://127.0.0.1:3308/java_blog_spring?characterEncoding=utf8&useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
  #  配置 mybatis xml 的文件路径,在 resources/mapper 创建所有表的 xml 文件
  mapper-locations: classpath:mapper/**Mapper.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 配置打印 MyBatis日志
    map-underscore-to-camel-case: true #配置驼峰自动转换
logging:
  file:
    name: spring-blog.log

在 application.yml 中指定使用哪个配置文件;

spring:
  profiles:
    active: dev

为了防止 application.yml 中的总是需要修改,可以从 Maven 环境中读取配置变量:

    
		
			dev
			
				dev
			
		
		
			prod
			
				prod
			
		
	

修改 application.yml:

spring:
  profiles:
    active: @profile.name@

2. 构建项目并打包

使用 Maven 进行打包:

1. 需要选择使用哪个配置文件,勾选好之后,要刷新,重新加载 Maven 配置;

2. 如果是线上环境,数据库配置和本地环境不同,打包时测试相关的操作会失败,因此可以跳过测试;

3. 双击 package 进行打包;

打包完,在指定目录中找到打包好的软件包,通常有几十兆,如果打包过小,只有几兆,可能是 Maven 中打包插件有问题,没有打包引入的第三方的代码;

3. 上传 jar 包到服务器

将打好的 jar 包托到服务器的指定目录:

拖动需要使用 rzsz 命令,如果拖动失败,先安装 rzsz:

apt-get install lrzsz

成功后运行程序:

nohup java -jar blog-spring-0.0.1-SNAPSHOT,jar &

使用 nohup 指令,可以使程序在 shell 窗口关闭后也能运行(后台运行程序);

程序运行后,注意一定要开放应用程序的端口号;

一切就绪后,使用浏览器进行访问,检查能否访问成功;

4. 解决端口号冲突

如果端口号冲突,先查找到使用这个端口进程;

netstat -anp | grep "8080"

找到使用这个端口的进程,查看这个进程是什么:

ps aux | grep "进程号"

如果这个进程可以不运行,可以杀掉进程:

kill 进程号

posted @ 2025-11-21 08:44  gccbuaa  阅读(12)  评论(0)    收藏  举报