当前位置: 首页 > news >正文

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=falseusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Drivermybatis:#  配置 mybatis xml 的文件路径,在 resources/mapper 创建所有表的 xml 文件mapper-locations: classpath:mapper/**Mapper.xmlconfiguration: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 环境中读取配置变量:

    <profiles><profile><id>dev</id><properties><profile.name>dev</profile.name></properties></profile><profile><id>prod</id><properties><profile.name>prod</profile.name></properties></profile></profiles>

修改 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 进程号

http://www.dtcms.com/a/503321.html

相关文章:

  • HTTP Client/Server 实践:cpp-httplib使用
  • 项目招商网站大全河北智慧团建网站
  • 量化交易的开源框架
  • 【Linux系统编程】4. Linux权限
  • 个人主页网站制作免费融资平台哪家好
  • week6
  • ZigBee中的many-to-one和link status(3)
  • 大型网站多少钱佳源房地产最新消息
  • Linux Bash(一)
  • 【Redis】哨兵与对脑裂的情况分析
  • 49.词向量:把文字变成数字
  • 【pulldown-cmark】创建自定义分支
  • python 网站开发流程图网站首页被k还有救吗
  • TsingtaoAI受邀参加HICOOL2025全球创业者峰会项目对接会
  • windows10激活解决办法
  • 学习建网站玩网站建设学习包装设计需要哪些信息
  • 【图像处理】rgb和srgb
  • 如何撰写网站建设方案海口网站开发制作
  • 查找成绩(向量实现)
  • STL中容器string -- 讲解超详细
  • Python lambda 表达式详解
  • 【JavaScript】原生函数
  • 渗透测试中爆破与撞库的区别
  • 门户网站如何做谷歌seo儿童网站建设
  • AI智能体的“瑞士军刀”:工具调用功能详解与实践
  • GYCTF2020
  • 2025-10-19 hetao1733837刷题记录
  • 批量字符替换工具,支持多种格式
  • 50.情感分析:AI读懂你的心情
  • 嵌入式Linux开发环境学习(二)