首页 > 编程语言 >如何将 JavaWeb 项目部署到云服务器

如何将 JavaWeb 项目部署到云服务器

时间:2024-12-08 15:57:28浏览次数:6  
标签:JavaWeb jdk 部署 sudo apt purge 卸载 mysql 服务器

1. 搭建 Java 部署环境

接下来以 Ubuntu 来进行演示

1.1. apt 包管理工具

apt 就相当于手机上的应用市场

列出所有软件包:apt list
这个命令输出所有包的列表,内容比较多,可以使用 grep 命令过滤输出:apt list |grep "jdk"

如果需要下载的软件,软件包中没有的话那就需要用其他方式下载了

安装软件前需要更新一下软件包数据库:sudo apt-get update

安装软件包
sudo apt install package_name

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

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

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

1.2. 下载 jdk

sudo apt install openjdk-17-jdk

安装之后可以使用 java -version 来查看是否安装成功

关于如何卸载 jdk

  1. 检查安装的是哪个 OpenJDK

dpkg --list | grep -i jdk

  1. 移除 openjdk 包:

apt-get purge openjdk*

  1. 卸载 OpenJDK 相关包:

apt-get purge icedtea-* openjdk-*

  1. 检查所有 OpenJDK 包是否都已卸载完毕:

dpkg --list | grep -i jdk

1.3. 下载 mysql

通过下面的命令来下载 mysql

sudo apt install mysql-server

安装好之后可以通过 mysql --version来查看版本

也可以通过 sudo systemctl status mysql来检查 mysql 的状态

关于卸载 mysql:

  1. 停止 mysql
    sudo systemctl stop mysql
  2. 卸载 mysql
    sudo apt-get remove --purge mysql-*
  3. 删除 MySQL 配置文件和数据
    sudo rm -rf /etc/mysql/var/lib/mysql
  4. 清理残留文件和目录
    sudo apt-get autoremove
    sudo apt-get autoclean
  5. 验证卸载结果
    mysql --version

2. 部署 Web 项目

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

2.1. mysql 安全设置

运行一下命令:

sudo mysql_secure_installation

运行之后的选项都输入 Y,密码强度设置为 2

输入 sudo mysql 进入后设置密码

ALTERUSER'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '自定义密码';

设置之后就可以创建数据库和表,保持和开发时的数据一致

2.2. 配置环境

开发环境和生产环境肯定是不一样的,所以一些配置也需要修改,比如 mysql 的密码或者一些日志的配置,就可以针对不同的平台来进行配置

那么这三个文件哪个可以生效,可以在 application.yml 来配置下面这些内容

spring:
  profiles:
    active: @profile.name@

是通过自定义 Maven 的参数来实现的

<profiles>
  <profile>
    <id>dev</id>
    <properties>
      <profile.name>dev</profile.name>
    </properties>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
  </profile>
  <profile>
    <id>prod</id>
    <properties>
      <profile.name>prod</profile.name>
    </properties>
  </profile>
</profiles>

这样就可以通过 Maven 来进行选择使用哪个配置了

也可以设置默认选择的是哪个配置文件

<activation>
  <activeByDefault>true</activeByDefault>
</activation>

2.3. 打包项目

上面配置好之后就可以打包了,注意要选择 prod,然后双击 package

如果 Test 代码中有与环境配置相关的操作 (比如数据库相关的操作,可能由于密码等不一致发生错误),打包会失败,可以选择跳过测试,因为执行 package 时会按照步骤从上往下依次执行

2.4. 上传并运行 jar 包

可以直接把 jar 包拖进 finalshell 中或者使用 rz 命令来进行上传,上传之后通过 java -jar 命令来运行 jar 包

如果希望别人也能访问的话,项目中设置的端口号(例如8080)也需要在云服务器上进行开放

不过使用上面的启动方式的话,如果 finalshell 关了或者断开连接,服务就停止了,就需要使用 nohup 命令来启动:

看日志的话推荐 tail -f 命令来去看,就可以实时查看,后续新增的日志也是能看到的

3. 常见问题总结

如果说服务不能正常访问,可能会有以下原因:

  1. 服务未启动:

可以使用 ps -ef|grep java来查看程序是否运行

使用 curl 项目路径来看是否返回有 html 页面,如果有返回,那么就说明程序启动成功了, 可能是端口号未开放

如果没有启动成功,需要查看对应的日志,可能是数据库不存在或者数据库密码不正确,jdk版本 ,mysql 没有设置密码等问题

  1. http 端口未开放,如果说云服务器的防火墙打开了,还需要再打开防火墙的端口号

可以使用sudu ufw status命令来查看防火墙是否开启,下面显示的是未开启状态

  1. 如果说在部署之后又发生了错误,要重新部署,就需要先把对应的进程结束掉,可以先通过netstat -nltp|grep 8080来查看对应的进程,再使用 kill 命令结束进程


 

标签:JavaWeb,jdk,部署,sudo,apt,purge,卸载,mysql,服务器
From: https://blog.csdn.net/2202_76097976/article/details/144326673

相关文章

  • 在Windows上设置 TeamSpeak 3 (VoIP)服务器,实现私有的团队语音加密通讯
    介绍TeamSpeak3服务器是一款用于通过语音进行通信的互联网语音协议(VoIP)软件。为了进行通信,TeamSpeak使用两个应用程序:客户端和服务器。在本教程中,您将学习如何在Windows操作系统上设置TeamSpeak3服务器。先决条件要学习本教程,您需要满足以下条件:您的机器上......
  • 设置Windows Server2019单网卡服务器的RAS远程访问,以实现L2TP或PPTP方式的专用网络连
    虚专网络(xPN)用于安全地在本地计算机和远程服务器之间创建数据隧道。在WindowsServer2019上,您可以利用远程访问服务配置xPN以向连接的客户端提供网络访问,并允许连接的设备安全地通信。本文介绍如何使用路由和远程访问功能将全新的WindowsServer2019设置为IPS......
  • 【Docker】创建Docker并部署Web站点
    要在服务器上创建Docker容器,并在其中部署站点,你可以按照以下步骤操作。我们将以Flask应用为例来说明如何完成这一过程。1.准备工作确保你的服务器已经安装了Docker。如果没有,请根据官方文档安装:Docker安装指南2.创建Flask应用的Dockerfile假设你已经有了一个Fla......
  • 21、使用Tomcat官方镜像部署War应用程序
    1.启动一个Tomcat容器,将Tomcat默认端口8080映射为8888dockerpulltomcat:8.0dockerimagestomcatdockerrun-d--rm-p8888:8080--namelgztomcattomcat:8.0192.168.20.19:8888[root@lgz19docker~]#vi/root/tomcat-users.xml<?xmlversion='1.0'encoding=&#......
  • 前端如何保持与服务器时间同步(如何解决客户端与服务端时间不对称的问题)?
    前端与服务器时间同步,是为了解决客户端与服务端时间不对称的问题,避免因此导致的逻辑错误或显示错误。以下是一些常见的解决方案,以及它们的优缺点:1.通过API获取服务器时间戳:方法:前端通过AJAX或Fetch等方式请求服务器的一个API接口,该接口返回服务器的当前时间戳。前......
  • Kubernetes 快速部署实操
    Kubernetes(简称K8s)是一个开源的容器编排平台,旨在自动化应用程序的部署、扩展和管理。它支持多种容器运行时,提供高可用性、自动扩展、自动负载均衡、容器编排等功能。通过Kubernetes,您可以轻松地在集群中管理容器化的应用程序。本文将介绍如何快速部署Kubernetes集群以及......
  • 通过服务器ftp修改网站备案,如何通过服务器FTP修改网站备案信息
    如何通过服务器FTP修改网站备案信息理解备案信息存储:网站备案信息通常存储在网站的配置文件中,这些文件可能位于网站根目录或特定的配置目录下。常见的配置文件包括 config.php、settings.php 等。连接FTP服务器:使用FTP客户端软件(如FileZilla、WinSCP)连接到网站服务器。输入服......
  • EMQ分布式MQTT消息服务器部署指南
    1.EMQ简介EMQ(ErlangMQTTBroker)是基于Erlang/OTP平台开发的开源MQTT消息服务器,支持百万级连接和分布式集群。主要特点:完整支持MQTTv3.1/v3.1.1/v5.0协议支持WebSocket协议支持分布式集群支持SSL/TLS加密传输提供Web管理控制台2.EMQ默认端口说明EMQ默认开......
  • springboot毕设教学网站设计与实现论文+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着信息技术的飞速发展,互联网在教育领域的应用日益广泛。传统教学模式受到时间和空间的限制,难以满足现代教育对于灵活性、个性化和资源共享的需......
  • springboot毕设健身工作室膳食健康与身材管理系统论文+程序+部署
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着现代生活节奏的加快,人们对健康和身材管理的关注度日益提高。健身工作室成为许多人追求健康生活方式的重要场所。然而,在健身过程中,膳食健康与......