Linux 部署 Java 项目:Tomcat、Redis、MySQL 教程

在 Linux 服务器上部署 Java 项目通常需要配置应用服务器(如 Tomcat)、数据库(如 MySQL)和缓存服务器(如 Redis)。本文将详细介绍如何在 Linux 环境中部署一个 Java 项目,涵盖 Tomcat、Redis 和 MySQL 的安装与配置。

一、准备工作

在开始之前,确保你拥有以下条件:

  1. 一台运行 Linux 的服务器(本文以 Ubuntu 为例)。
  2. 具有 sudo 权限的用户。
  3. 安装好 Java 环境(JDK)。

安装 Java 环境

如果尚未安装 JDK,可以使用以下命令进行安装:

sudo apt update
sudo apt install openjdk-11-jdk -y
​

二、安装和配置 Tomcat

1. 下载并解压 Tomcat

首先,下载最新版本的 Apache Tomcat:

wget https://downloads.apache.org/tomcat/tomcat-9/v9.0.56/bin/apache-tomcat-9.0.56.tar.gz
​

解压下载的文件:

tar -xzf apache-tomcat-9.0.56.tar.gz
sudo mv apache-tomcat-9.0.56 /usr/local/tomcat
​

2. 配置环境变量

编辑 /etc/profile 文件,添加 Tomcat 的环境变量:

sudo nano /etc/profile
​

在文件末尾添加以下内容:

export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$CATALINA_HOME/bin
​

使配置生效:

source /etc/profile
​

3. 启动 Tomcat

启动 Tomcat 服务:

cd $CATALINA_HOME/bin
./startup.sh
​

可以通过访问 http://<服务器IP>:8080 检查 Tomcat 是否启动成功。

三、安装和配置 MySQL

1. 安装 MySQL

使用以下命令安装 MySQL:

sudo apt update
sudo apt install mysql-server -y
​

2. 安全配置

运行安全安装脚本进行配置:

sudo mysql_secure_installation
​

按照提示设置 root 密码,并根据需求配置其他安全选项。

3. 创建数据库和用户

登录 MySQL 终端,创建数据库和用户:

sudo mysql -u root -p
​

在 MySQL 终端中执行以下命令:

CREATE DATABASE mydatabase;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
​

四、安装和配置 Redis

1. 安装 Redis

使用以下命令安装 Redis:

sudo apt update
sudo apt install redis-server -y
​

2. 配置 Redis

编辑 Redis 配置文件 /etc/redis/redis.conf

sudo nano /etc/redis/redis.conf
​

找到以下行并修改为:

supervised systemd
​

3. 启动 Redis 服务

重启 Redis 服务使配置生效:

sudo systemctl restart redis.service
​

确认 Redis 服务正在运行:

sudo systemctl status redis
​

五、部署 Java 项目

1. 打包 Java 项目

使用 Maven 或 Gradle 打包你的 Java 项目,生成 .war 文件。

2. 部署到 Tomcat

将生成的 .war 文件复制到 Tomcat 的 webapps 目录下:

sudo cp /path/to/yourproject.war /usr/local/tomcat/webapps/
​

重启 Tomcat:

cd $CATALINA_HOME/bin
./shutdown.sh
./startup.sh
​

3. 配置项目数据库连接

编辑项目的配置文件(如 application.properties 或 application.yml),确保正确配置 MySQL 和 Redis 的连接信息:

# MySQL 配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=myuser
spring.datasource.password=mypassword# Redis 配置
spring.redis.host=localhost
spring.redis.port=6379
​

六、总结

通过以上步骤,您已经在 Linux 服务器上成功安装并配置了 Tomcat、MySQL 和 Redis,并将 Java 项目部署到 Tomcat 中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/68152.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python数据可视化(够用版):懂基础 + 专业的图表抛给Tableau等专业绘图工具

我先说说文章标题中的“够用版”啥意思&#xff0c;为什么这么写。 按照我个人观点&#xff0c;在使用Python进行数据分析时&#xff0c;我们有时候肯定要结合到图表去进行分析&#xff0c;去直观展现数据的规律和特定&#xff0c;那么我们肯定要做一些简单的可视化&#xff0…

【C++】特殊类设计、单例模式与类型转换

目录 一、设计一个类不能被拷贝 &#xff08;一&#xff09;C98 &#xff08;二&#xff09;C11 二、设计一个类只能在堆上创建对象 &#xff08;一&#xff09;将构造函数私有化&#xff0c;对外提供接口 &#xff08;二&#xff09;将析构函数私有化 三、设计一个类只…

Jetpack Compose 和 Compose Multiplatform 还有 KMP 的关系

今天刚好看到官方发布了一篇文章&#xff0c;用于讨论 Compose Multiplatform 和 Jetpack Compose 之间的区别&#xff0c;突然想起之前评论区经常看到说 “Flutter 和 CMP 对于 Google 来说项目重叠的问题”&#xff0c;刚好可以放一起聊一聊。 最近写的几篇内容写的太干&…

uniapp 在线更新应用

在线更新应用及进度条显示 1.比较现安装手机中的apk 与线上apk的版本 getVersion(){var newVersionuni.getStorageSync("newVersion").split(".")var versionplus.runtime.version.split(".") // 获取手机安装的版本var versionNum""…

ICSE‘25 LLM Assistance for Memory Safety

不知道从什么时候开始&#xff0c;各大技术社区&#xff0c;技术群聊流行着 “用Rust重写!” &#xff0c;放一张图(笑死… 这不, 随着大模型技术的流行&#xff0c;大家都在探索如何让大模型自动完成仓库级别(全程序)的代码重构&#xff0c;代码变换&#xff08;Refactor&…

华为 Ascend 平台 YOLOv5 目标检测推理教程

1. 背景介绍 随着人工智能技术的快速发展&#xff0c;目标检测在智能安防、自动驾驶、工业检测等领域中扮演了重要角色。YOLOv5 是一种高效的目标检测模型&#xff0c;凭借其速度和精度的平衡广受欢迎。 华为 Ascend 推理框架&#xff08;ACL&#xff09;是 Ascend CANN 软件…

Linux MySQL离线安装

一、准备工作 1. 下载MySQL安装包 访问MySQL官方网站&#xff0c;选择适合您Linux系统的MySQL版本进行下载。通常推荐下载Generic Linux (glibc 2.12)版本的.tar.gz压缩包&#xff0c;例如mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz。将下载好的安装包拷贝到Linux服务器的某…

TRTC实时对话式AI解决方案,助力人机语音交互极致体验

近年来&#xff0c;AI热度持续攀升&#xff0c;无论是融资规模还是用户热度都大幅增长。2023 年&#xff0c;中国 AI 行业融资规模达2631亿人民币&#xff0c;较2022年上升51%&#xff1b;2024年第二季度&#xff0c;全球 AI 初创企业融资规模为 240 亿美金&#xff0c;较第一季…

Android多语言开发自动化生成工具

在做 Android 开发的过程中&#xff0c;经常会遇到多语言开发的场景&#xff0c;尤其在车载项目中&#xff0c;多语言开发更为常见。对应多语言开发&#xff0c;通常都是在中文版本的基础上开发其他国家语言&#xff0c;这里我们会拿到中-外语言对照表&#xff0c;这里的工作难…

最新最详细的配置Node.js环境教程

配置Node.js环境 一、前言 &#xff08;一&#xff09;为什么要配置Node.js&#xff1f;&#xff08;二&#xff09;NPM生态是什么&#xff08;三&#xff09;Node和NPM的区别 二、如何配置Node.js环境 第一步、安装环境第二步、安装步骤第三步、验证安装第四步、修改全局模块…

Greenplum临时表未清除导致库龄过高处理

1.问题 Greenplum集群segment后台日志报错 2.回收库龄 master上执行 vacuumdb -F -d cxy vacuumdb -F -d template1 vacuumdb -F -d rptdb 3.回收完成后检查 仍然发现segment还是有库龄报警警告信息发出 4.检查 4.1 在master上检查库年龄 SELECT datname, datfrozen…

CAPL自动化测试

CAPL自动化测试 目录 CAPL自动化测试1. 引言2. 测试用例设计与实现2.1 测试用例设计2.2 测试用例实现3. 测试报告生成与分析3.1 测试报告生成3.2 测试报告分析4. 自动化测试框架搭建4.1 自动化测试框架设计4.2 自动化测试框架实现5. 案例说明5.1 案例1:测试用例设计与实现5.2 …

【go语言】map 和 list

一、map map 是一种无序的键值对的集合。 无序 &#xff1a;map[key]键值对&#xff1a;key - value map 最重要的一点是通过 key 来快速检索数据&#xff0c;key 类似于索引&#xff0c;指向数据的值。map 是一种集合&#xff0c;所以我们可以像迭代数组和切片那样迭代他。…

Python自动化运维:一键掌控服务器的高效之道

《Python OpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门! 解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 在互联网和云计算高速发展的今天,服务器数量的指数增长使得手动运维和管理变得异常繁琐。Python凭借其强大的可读性和丰富的生态系统,成为…

数据融合的经典模型:早期融合、中期融合与后期融合的对比

在多模态数据融合中&#xff0c;如何将不同模态&#xff08;如图像、文本、语音等&#xff09;的数据整合到一个统一的表示中&#xff0c;是至关重要的环节。不同的任务需求和数据特点决定了我们应该采用哪种融合策略&#xff0c;而早期融合、中期融合和后期融合是多模态数据处…

使用python调用JIRA6 进行OAuth1认证获取AccessToken

Jira配置应用程序链接 1) 创建应用程序链接 登录 JIRA 管理后台。转到 Administration > Applications > Application Links。在输入框中输入外部应用程序的 URL&#xff08;例如 GitLab 或自定义应用&#xff09;&#xff0c;然后点击 Create new link。 2) 配置 Con…

WPF基础 | WPF 基础概念全解析:布局、控件与事件

WPF基础 | WPF 基础概念全解析&#xff1a;布局、控件与事件 一、前言二、WPF 布局系统2.1 布局的重要性与基本原理2.2 常见布局面板2.3 布局的测量与排列过程 三、WPF 控件3.1 控件概述与分类3.2 常见控件的属性、方法与事件3.3 自定义控件 四、WPF 事件4.1 路由事件概述4.2 事…

2K高刷电竞显示器推荐

2K高刷电竞显示器推荐&#xff0c;各位喜欢打游戏&#xff0c;身为电竞迷的小伙伴&#xff0c;如果你想选一款2K高刷电竞显示器&#xff0c;那么下面的内容不容错过。 1.HKC G27H4Pro - 2K高刷电竞显示器推荐 外观 - HKC G27H4Pro 2K高刷电竞显示器 初见 HKC G27H4Pro&#x…

【29】Word:李楠-学术期刊❗

目录 题目​ NO1.2.3.4.5 NO6.7.8 NO9.10.11 NO12.13.14.15 NO16 题目 NO1.2.3.4.5 另存为手动/F12Fn光标来到开头位置处→插入→封面→选择花丝→根据样例图片&#xff0c;对应位置填入对应文字 (手动调整即可&#xff09;复制样式&#xff1a;开始→样式对话框→管理…

破解浏览器渲染“死锁”:CSS与JS如何影响页面加载速度?

破解浏览器渲染“死锁”&#xff1a;CSS与JS如何影响页面加载速度&#xff1f; 在这个快速发展的Web世界里&#xff0c;性能是开发者们永恒的追求。当你打开一个网页&#xff0c;可能会注意到一些页面加载特别慢&#xff0c;甚至产生短暂的“白屏”&#xff0c;你有没有想过&a…