news 2026/5/23 23:07:00

【SpringBoot】搭建Java部署环境 部署项目到Linux服务器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【SpringBoot】搭建Java部署环境 部署项目到Linux服务器

文章目录

  • 搭建Java部署环境
    • 1. apt
    • 2. JDK
    • 3. MySQL
  • 部署Web项目到Linux
    • 一、什么是部署
    • 二、环境配置
      • 数据准备
      • 程序配置文件修改
      • 多平台文件配置
    • 三、构建项目并打包
    • 四、上传Jar包到服务器,并运行
      • 1. 上传Jar包
      • 2. 运行程序
      • 3. 开放端口号
    • 五、验证程序

搭建Java部署环境

1. apt

apt(Advanced Packaging Tool)是Linux软件包管理工具。用于在UbuntuDebian和相关Linux发行版上安装、更新、删除和管理软件包。

列出所有软件包:

aptlist|grep"java"

更新软件包数据库:

sudoapt-getupdate

安装软件包:

sudoaptinstall包名

移除软件包:

sudoaptremove 包名

remove命令将卸载给定的软件包,但可能会留下一些配置文件。如果要删除包含所有配置文件的软件包,请使用purge而不是remove

apt removeapt purge的区别

  • apt remove删除包的二进制文件,它留下了残留的配置文件。
  • apt purge删除与包相关的所有内容,包括配置文件。

如果弄乱了程序的配置,希望从系统中完全清除它的痕迹再重新开始,可以使用apt purge

通常使用apt remove就足够了。

2. JDK

  1. 更新软件包
sudoapt-getupdate
  1. 安装openjdk
#查找jdk包aptlist|grep"jdk"#安装jdksudoaptinstallopenjdk-17-jdk

使用java -version验证是否安装成功。

3. MySQL

  1. 使用apt安装MySQL
#查找安装包aptlist|grep"mysql-server"#安装mysqlsudoaptinstallmysql-server
  1. 查看MySQL状态
sudo systemctl status mysql
  1. MySQL安装安全设置:默认的MySQL设置是不安全的,MySQL安装提供了一个安全脚本,用于解决不太安全的默认选项。
sudomysql_secure_installation
  1. 设置密码:连接mysql服务器
sudomysql
  1. 使用alter user命令修改密码
ALTERUSER'root'@'localhost'IDENTIFIED WITH mysql_native_password BY'密码';

卸载MySQL

#停止mysqlsudosystemctl stop mysql#卸载mysqlsudoapt-getremove--purgemysql-server mysql-client mysql-common#删除 MySQL 配置文件和数据sudorm-rf/etc/mysql /var/lib/mysql#清理残留文件和目录sudoapt-getautoremovesudoapt-getautoclean#验证卸载结果mysql--version

部署Web项目到Linux

一、什么是部署

工作中涉及到的"环境"

  • 开发环境:开发人员写代码用的机器。
  • 测试环境:测试人员测试程序使用的机器。
  • 生产环境(线上环境):最终项目发布时所使用的机器。对稳定性要求很高。

把程序安装到生产环境上,这个过程称为"部署"。也叫"上线"。

一旦程序部署成功,那么这个程序就能被外网中千千万万的普通用户访问到。

换句话说,如果程序有BUG,这个BUG也就被千千万万的用户看到了。

部署过程至关重要,属于程序开发中最重要的一环。一旦部署出现问题,极有可能导致严重的事故(服务器不可用之类的)。

为了防止部署出错,一般公司内部都有一些自动化部署工具(如Jenkins等)。当前我们先使用手工部署的方式来完成部署。

二、环境配置

程序正常运行,需要保证环境和程序都要正确,我们需要先设置环境!

数据准备

按照之前的数据库建表脚本,在服务器上运行,建立相同的表结构。

程序配置文件修改

实际工作中,开发环境,测试环境以及生产环境的配置都是不一样的,比如 mysql 的用户名和密码,我们可以针对不同的环境,设置不同的配置。

多平台文件配置

针对不同平台创建不同的配置文件,要求名字为application-XXX.yml或者application-XXX.properties

固定格式,只有后面的字母可以修改

在配置文件里写不同的内容

application-dev.yml

spring:datasource:url:jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncoding=utf8&useSSL=falseusername:rootpassword:rootdriver-class-name:com.mysql.cj.jdbc.Driver

application-prod.yml

spring:datasource:url:jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncoding=utf8&useSSL=falseusername:rootpassword:123456driver-class-name:com.mysql.cj.jdbc.Driver

在主配置文件application.yml中指定配置文件,并删除数据库相关配置

spring:profiles:active:prod

也可以从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><build><resources><resource><directory>src/main/resources</directory><filtering>true</filtering><!-- 💥💥💥开启占位符替换 --></resource></resources></build>

修改主配置文件application.yml

spring:profiles:active:@profile.name@

三、构建项目并打包

在本地使用maven进行打包

  1. 如果Test代码中有与环境配置相关的操作(比如数据库相关的操作),打包会失败,点击下图①处的图标,可以跳过测试
  2. 点击clean->package

四、上传Jar包到服务器,并运行

1. 上传Jar包

直接拖动打好的jar包到xshell窗口即可完成文件的上传

Xshell可以直接拖动文件到窗口,达到上传文件的目的,如果使用其他客户端,不支持文件的上传,需要借助lrzsz命令。

安装lrzsz

apt-getinstalllrzsz

2. 运行程序

nohupjava-jarblog-spring-0.0.1-SNAPSHOT.jar&
  • nohup:后台运行程序。用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。
  • &:让命令在后台执行,终端退出后命令仍旧执行

3. 开放端口号

如果外网需要访问该服务,需要先服务器防火墙开放对应的端口号

本着服务器安全的原则,云服务器上的端口非必要不开启。

比如常见端口号:数据库3306,Redis6379,尽可能避免开放,而是采用其他方式来连接,比如配置隧道的方式

以腾讯云服务器举例:

1)进入防火墙管理页面

2)添加规则

端口号写需要开放的端口号,多个端口号以逗号分割。

五、验证程序

  1. 访问项目:http://IP:Port/blog_login.html,IP改为云服务器的IP,Port改为项目的端口号。

  2. 按照项目的功能进行验证

  • 验证账户注册登录
  • 验证展示博客列表
  • 验证新增博客
  • 验证展示博客内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/10 8:44:13

提升PostgreSQL编码效率的利器:pg-aiguide✨

pg-aiguide&#xff1a;AI优化的PostgreSQL编码助手 随着人工智能技术的迅猛发展&#xff0c;AI编码工具在数据库设计和查询生成方面扮演着越来越重要的角色。然而&#xff0c;这些工具在PostgreSQL数据库代码的生成中常常存在一些问题&#xff0c;例如生成的代码过时、缺乏约束…

作者头像 李华
网站建设 2026/5/16 10:51:58

交通拥堵语音预警:导航提前告知绕行建议

交通拥堵语音预警&#xff1a;导航提前告知绕行建议 在早晚高峰的主干道上&#xff0c;你正专注驾驶&#xff0c;突然导航传来一句生硬的“前方拥堵&#xff0c;请变道”——声音机械、语气突兀&#xff0c;甚至还没等你反应过来&#xff0c;提示已经结束。这种体验不仅低效&am…

作者头像 李华
网站建设 2026/5/15 4:23:58

游戏NPC语音生成:VoxCPM-1.5-TTS助力互动体验升级

游戏NPC语音生成&#xff1a;VoxCPM-1.5-TTS助力互动体验升级 在现代游戏开发中&#xff0c;玩家对沉浸感的期待早已超越画面与剧情——他们希望世界是“活”的。当一位NPC不仅能回应你的选择&#xff0c;还能用熟悉的声音、带着情绪地说出你从未听过的新台词时&#xff0c;那种…

作者头像 李华
网站建设 2026/5/12 21:30:22

飞机黑匣子语音记录:事故调查新增AI还原功能

飞机黑匣子语音记录&#xff1a;事故调查新增AI还原功能 在一场空难发生后&#xff0c;最令调查人员揪心的&#xff0c;往往不是飞行数据的缺失&#xff0c;而是驾驶舱录音中那一段段模糊、断裂甚至完全静默的声音。这些“沉默的几秒”&#xff0c;可能正是解开事故谜团的关键时…

作者头像 李华
网站建设 2026/5/23 13:04:29

婚恋交友自我介绍:相亲平台用户生成动听语音名片

婚恋交友自我介绍&#xff1a;相亲平台用户生成动听语音名片 在婚恋交友平台上&#xff0c;第一印象往往决定了一段关系能否开始。当两个陌生人通过手机屏幕相遇时&#xff0c;文字简介再详尽也难以传递语气中的温柔、笑声里的真诚或讲述爱好时的雀跃。传统的“我是张伟&#x…

作者头像 李华
网站建设 2026/5/20 4:45:25

殡葬服务悼词撰写:家属口述内容转化为庄重语音

殡葬服务悼词撰写&#xff1a;家属口述内容转化为庄重语音 在殡仪馆的追思厅里&#xff0c;一段低沉而真挚的悼词缓缓响起——不是由某位亲属颤抖着念出&#xff0c;也不是由主持人机械地播报&#xff0c;而是通过AI技术&#xff0c;将一位逝者子女含泪讲述的回忆&#xff0c;转…

作者头像 李华