使用Ubuntu搭建Java部署环境

发布于:2025-02-22 ⋅ 阅读:(14) ⋅ 点赞:(0)

🙉专栏推荐:Java入门知识🙉

🐹今日诗词:小舟从此逝,江海寄余生🐹


⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏

⛳️点赞 ☀️收藏⭐️关注💬卑微小博主🙏


在Ubuntu下搭建Java部署环境需要使用到apt命令

apt命令(用于安装、更新、删除、查询软件包)

语法: 

apt [命令] [软件包名称]

接下来我们来搭建Java部署环境

使用apt安装JDK

更新软件包列表

我们先更新软件包列表

Ubuntu仓库的软件不一定和软件包官网的版本一样, 如果有需求可以自定义下载, 不使用配置仓库的软件包

安装openJDK

步骤: 

  • 查找jdk: 使用 apt list |grep "jdk"
  • 安装jdk: 使用 sudo apt install openjdk-17-jdk

查找jdk

apt list |grep "jdk"

安装jdk

sudo apt install openjdk-17-jdk

使用apt安装MySQL

查找安装包

命令: 

apt list | grep "mysql-server"

安装MySQL

命令:

sudo apt install mysql-server

输入命令, enter安装, 接下来会有选择让我们选择



查看MySQL状态

命令

sudo systemctl status mysql

MySQL安全设置

默认安装的MySQL设置是不安全的, 数据被盗了就老实了, 因此MySQL提供了一个安全脚本

命令: 

sudo mysql_secure_installation

接下来也有许多选项, 除了第二个选项选择数字2, 其他都选择Y

选项1.

选项2.

剩下全选择: Y

设置密码

先连接MySQL服务器

命令: 

sudo mysql

修改密码命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'

大小写都要有

退出数据库: 安装完毕, 退出数据库回到主机页面的命令是

exit

如何连接MySQL数据库?

连接数据库命令: 

mysql -uroot -p

这个是隐式输入, 看不见输入的东西

然后把你的数据库代码导出来, 文件后缀是.sql, 最后放到服务器中

或者在服务器中执行sql语句也是可以的

执行sql文件的命令

source 文件名

部署Web项目到Linux

准备工作

我们需要把本地的项目上传到服务器上, 需要做点准备工作

1. 上传文件到服务器需要通过 rz 命令上传

    但是ubuntu 没有内置上传命令(rz), 我们需要通过指令下面指定安装

apt-get install lrzsz

安装完之后, 我们可以把本地文件上传到服务器上, 也可以将服务器的文件下载到本地

经过以上的步骤, 我们服务器的项目环境就部署好了,

下面就可以把我们本地的项目上传到服务器上了,

上线之间需要进行小小的修改

修改程序的配置文件

Spring Boot 默认使用 application.ymlapplication.properties 来加载全局配置。如果要为不同的环境创建配置文件,可以命名为以下格式:

  • application.yml
  • application-dev.yml(开发环境)
  • application-prod.yml(生产环境)

下面是原本的application.yml内容, 接下来复制两份分别到

application-dev.yml和application-prod.yml文件中

spring:
  application:
    name: books
  # ???????
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/java_blog_spring?characterEncoding=utf8&useSSL=false
    username: root
    password: root
    driver-class-name: com.mysql.cj.jdbc.Driver
# ?? mybatis xml ??????? resources/mapper ?????? xml ??
mybatis:
  mapper-locations: classpath:mapper/**Mapper.xml
  configuration:
    map-underscore-to-camel-case: true #????????
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
logging:
  file:
    name: spring-book.log

这两个文件设置好了, 就通过application.yml指定要激活的环境配置文件

application.yml文件代码如下:

spring:
  profiles:
    active: prod

使用Maven打包

使用Maven把项目打包成jar包的形式

点击package即可打包

它会依次执行clean->validate->compile->test->package

如果打包的过程中出错了, 大概率是test执行没通过, 像下面这样

解决办法

打包成功是这种情况

找到你打好的jar包, 然后上传到服务器上

ls查看是否上传成功

启动程序

通过指令启动我们的程序

启动程序分为前台启动和后台启动:

前台启动程序: 关闭连接就不能继续访问了

java -jar jar包名

nohup(后台持久化运行)

nohup: 用于在关闭终端时, 保持程序继续运行, 

通过kill指令可以结束运行的进程

nohup java -jar 包名 &

开放端口号

开放端口号需要在你的服务器厂商那里开启, 下面以阿里云为例: 演示如何开放端口号

阿里云

观察日志(重要)

项目已经能够在线上运行了, 如果出现问题了, 

学会观察日志也非常重要, 一般都是观察error日志和查看最后的日志

持续跟踪日志:

tail -f 日志文件名

持续跟踪错误日志

tail -f 日志文件名 | grep "ERROR"

日志重定向

指令:

nohup java -jar 执行文件 >重定向目录 &

Linux通过 > 进行重定向

日志重定向需要先关闭进程, 然后在启动的时候才能设置日志存储位置

杀死进程指令:

kill 进程号或进程名

如果不知道具体的进程名, 可以先模糊查询一下, 在通过进程号杀死进程

先查看正在运行的进程:

ps -ef|grep 进程名

找到进程的pid, 然后kill 进程号

常见问题

一个程序的正常运行,需要程序的正确和环境的正确.同样的代码在Windows上可以运行成功,不一定在Linux上运行成功,不同的系统对代码的理解和支持是不同的.

比如Windows系统对MySQL不区分大小写,Linux区分大小写服务不能正常访问的原因有很多,主要分以下几方面: 

  1. 服务未启动
    使用 ps -ef|grep java查看程序是否在运行
    curl http://127.0.0.1:8080/你的网页名.html看下是否有返回html页面,
    如果有返回,说明程序启动成功了,考虑端口未开放
    如果未启动成功,需要查看对应的日志,根据原因来分析.
  2. 数据库不存在
  3. 表不存在(区分大小写)
  4. 数据库密码不正确
  5. Jdk 安装版本不对,或者未安装
  6. mysql未设置密码
  7. http端口未开放: 检查云服务器防火墙/安全组是否开放相应端口(如8080)

美图分享

✨🎆谢谢你的阅读和耐心!祝愿你在编程的道路上取得更多的成功与喜悦!"🎆✨🎄

⭐️点赞收藏加关注,学习知识不迷路⭐️

🎉✔️💪🎉✔️💪🎉✔️💪🎉✔️💪🎉

👍😏⛳️点赞☀️收藏⭐️关注😏👍

👍😏⛳️点赞☀️收藏⭐️关注😏👍

👍😏⛳️点赞☀️收藏⭐️关注😏👍

🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️🙆‍♂️