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

【Ubuntu24.04】部署服务(基础)

目录

  • 0 背景
  • 1 设置静态IP
  • 2 连接服务器
  • 3 部署服务
    • 3.1 安装JDK
    • 3.2 下载并安装MySQL8.4
      • 3.2.1 从官网下载 APT Repository 配置文件
      • 3.2.2 安装 MySQL8.4
      • 3.2.3 配置远程连接
    • 3.3 下载并配置Redis
    • 3.4 上传jar包并部署应用
    • 3.5 开放端口
  • 4 总结

0 背景

    在成功安装了Ubuntu24.04操作系统后,自然想用它做些什么,正好手里有一个早先写的测试服务,所以想试试部署一下。
    服务是一个小小的单体SpringBoot项目,项目本身并不是重点,这里已经将其打成了jar包,已知其使用到的组件有RedisMySQL
    下面来部署一下。

1 设置静态IP

    既然是服务器,那么IP就不要变,尤其是个人笔记本这种连接WiFi的机器,使用DHCP分配IP的话,说不定哪天IP就变了。所以要想将笔记本当服务器使用,那么就得配置静态IP。
    桌面版的Ubuntu配置静态IP的方式很简单,只需要进入设置,然后选择网络,然后你连接的WiFi后面有一个齿轮,点击进去,可以看到现在的IP地址,切换到IPv4,选择手动,直接将刚才看到的IP地址填进去,并设置子网掩码和默认网关,网关一般都是最后一段写1即可。然后配置DNS解析地址为8.8.8.8即可。

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
点击应用按钮即可,然后重启一下WiFi开关。
    现在应该就设置好静态IP了。接下来就是让远程的开发机可以通过ssh连接工具,比如Termius来连接。

2 连接服务器

    在开发机上安装Termius,然后在服务器上安装ssh服务,执行:

# 更新源
sudo apt update
# 安装ssh
sudo apt install openssh-server
# 开启防火墙
sudo ufw allow ssh
# 查看状态
sudo systemctl status ssh
# 如果是inactive也不要担心,重启服务即可
sudo systemctl restart ssh
# 开机自启动
sudo systemctl enable ssh

    这样一来就可以通过远程连接服务器了。这一步的作用是在开发机一个电脑上就可以完成从开发到部署的所有操作,而不需要去操作服务器。换句话说,如果操作服务器很方便的话,完全可以通过邮箱把需要部署的东西传到服务器然后在服务器上操作。
    但是自己的笔记本电脑一般会安装桌面版Ubuntu,所以远程连接不是必需的。

3 部署服务

    现在开始部署jar包,这里使用最原始最简单的方式部署。不过在部署之前需要安装必需的环境。

3.1 安装JDK

    老生常谈的JDK,只需要注意版本即可,SpringBoot3需要JDK17及以上,安装过程不细说,可以参考本文在最后给出的链接。

3.2 下载并安装MySQL8.4

    这个也是老生常谈的问题,在Ubuntu24.04上安装MySQL8非常简单,不需要传统的解压缩之类的操作,这个也会在文末给出链接。
    不过这里选择安装MySQL8.4,与之前的安装有所不同。

3.2.1 从官网下载 APT Repository 配置文件

官网地址
在这里插入图片描述
然后安装这个.deb文件,执行

# 跟上你下载的 .deb 文件名
sudo dpkg -i xxx.deb

在安装的时候会跳出图形化界面让你配置:
在这里插入图片描述
注意选择蓝色方框中的即可,第一个是mysql-8.4-lts,第二个是Enabled
第一个点进去长这样:
在这里插入图片描述
第二个点进去长这样:
在这里插入图片描述
选择好之后选择ok即可
在这里插入图片描述
然后这个.deb文件的安装就好了。

3.2.2 安装 MySQL8.4

    接下来就是使用apt安装MySQL了,这一步和安装MySQL8.0一样,区别就在于之前的那个.deb文件,执行:

sudo apt update
sudo apt install mysql-server

    在这个过程中会出现图形化界面让你配置密码,这样就不用安装好之后再去配置密码了。

3.2.3 配置远程连接

    首先进入MySQL,执行

mysql -uroot -p

    然后输入安装的时候设置的密码即可,进入之后执行:

use mysql;
# 查看一下用户以及密码策略,可以看到全是采用的 caching_sha2_password 而不是 mysql_native_password
select user,host,plugin from user;
# 设置远程权限
update user set host = '%' where user = 'root';
# 刷新,很重要
flush privileges;

    执行完上述操作后应该是这样的:
在这里插入图片描述
    至此MySQL的配置就完了,注意不需要去修改任何的配置文件,很方便。但是需要注意连接MySQL的图形化工具的驱动,我之前使用的SQLYog的一个很老的破解版(之所以不用社区版是因为它有广告)就因为驱动不够新而连不上。

3.3 下载并配置Redis

    Ubuntu24.04安装Redis同样非常方便,只需要执行:

sudo apt update
sudo apt upgrade -y
# 安装redis
sudo apt install redis-server -y
# 查看版本
redis-cli --version
# 查看状态,按q退出
sudo systemctl status redis

    至此Redis安装完成,还需要进一步地配置,执行:

sudo vim /etc/redis/redis.conf
# 找到 requirepass 那一行(用vim的/搜索即可),将其改为你的密码
# 找到 protected-mode 那一行,将 yes 改为 no
# 找到 bind 那一行,将其注释掉,表示任意IP均可访问,也可以设置指定IP访问
# 然后查看端口监听状态
netstat -tuln
# 如果看到 0.0.0.0:6379 就说明redis可以被任意远程IP访问

    至此Redis配置完成。

3.4 上传jar包并部署应用

    上传jar包可以用TermiusSFTP,这个传输可以直接传文件夹,非常方便,注意把数据库的SQL文件一起传过去。然后创建好数据库并做好必要的数据初始化,执行:

# 注意这是在 shell 终端执行的
mysql -uroot -p < your_sql_file.sql

    然后会让你输入密码,输入即可。此时数据库已经初始化好。接下来就是运行jar包了。执行

# 在后台运行jar包并将日志输出到demo.log中,这适合项目中没有配置日志的情况
nohup java -jar demo.jar > demo.log &
# 在后台运行但忽略任何输出,这要求在项目中已经配置好日志的输出
nohup java -jar demo.jar > /dev/null 2>&1 &
# 查看java进程
jps -l

    注意不要直接使用java -jar,因为这样会占据终端,并且将日志输出到终端,一旦Ctrl+C就会退出整个进程。

3.5 开放端口

    光有服务还不够,还需要能远程访问该服务,这就需要开放对应的端口。其实默认防火墙是inactive状态的,这表示所有端口都可以被访问。如果只是自己使用,关闭防火墙不见得是一个坏的选择,这样很简单,不用关心端口是否开放。不过用在其它地方的话就要考虑安全性问题了。

4 总结

    服务的部署很简单,繁琐的是布置好服务要用到的环境,以及维护服务,比如报错日志,服务的更新等。这里使用的是最原始的部署方式,主要是为了呈现部署原理以及操作步骤。
    最后是安装配置JDK以及MySQL8.0的方法:Ubuntu24.04开发环境配置


http://www.mrgr.cn/news/69478.html

相关文章:

  • 【Hadoop】【hdfs】【大数据技术基础】课程 作业四 可视化工具的使用 大数据基础编程、实验和案例教程(第2版)
  • 开源音乐分离器Audio Decomposition:可实现盲源音频分离,无需外部乐器分离库,从头开始制作。将音乐转换为五线谱的程序
  • AI制作ppt
  • STM32F1学习——PWM波(OC输出比较)
  • WEB攻防-通用漏洞SQL注入sqlmapOracleMongodbDB2等
  • 艾体宝方案丨制造业BI解决方案:推动智能生产和数字化转型
  • 使用VSCode远程连接服务器并解决Neo4j无法登陆问题
  • windows C#-使用异常
  • k8s中基于overlay网络和underlay网络的网络插件分别有哪些
  • Jenkins配置步骤
  • md5等摘要算法的「撞库」与「加盐」(Ⅰ)
  • npm i 的时候报错: npm ERR! Error: EPERM: operation not permitted, rename
  • vue3使用element-plus,树组件el-tree增加引导线
  • 【debug】QT 相关问题error汇总 QT5升级到QT6需要注意要点
  • Diffusion Policy——斯坦福刷盘机器人UMI所用的扩散策略(含Diff-Control、ControlNet详解)
  • C#语言详解:从基础到进阶
  • 代码随想录训练营Day20 | 93.复原IP地址 - 78.子集 - 90.子集II
  • 移动应用开发:实现简易调查问卷
  • 第二十九天|贪心算法| 134. 加油站, 135. 分发糖果 ,860.柠檬水找零,406.根据身高重建队列
  • 基于STM32的红外遥控接收器
  • PostgreSQL 删除数据库
  • 每天五分钟深度学习PyTorch:基于全连接神经网络完成手写字体识别
  • HarmonyOS入门 : 获取网络数据,并渲染到界面上
  • Android中桌面小部件的开发流程及常见问题和解决方案
  • MQTT协议解析 : 物联网领域的最佳选择
  • HTML5+css3(定位属性,position:absolute,relative,fixed,相对定位,绝对定位,固定定位,z-index属性)