【JavaEE】项目的部署-让网络上的人都能访问你的网站

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 【JavaEE】项目的部署-让网络上的人都能访问你的网站

【JavaEE】项目的部署-让网络上的人都能访问你的网站


1. 搭建环境

我们的博客系统或者表白墙,需要依靠哪些软件/程序呢?

  1. IDEA?
  • 错误,java的特点就是兼容性高,一处编译到处运行~
  • 只要你有 jdk,就可以编译和运行~
  1. Tomcat
  • yes
  1. mysql
  • yes

其他的工具包/库/依赖,通过网络就行了,或者跟项目在一起,所以不必在意~

1.1 jdk

在yum里下载即可

  • ==yum > Linux的包管理器

注意网络通畅!

devel 代表 development,开发

yum install java-1.8.0-openjdk-devel.x86_64
  • 如果运行不了,可能是有另外一个yum进程在运行,得把对应的进程干掉/把提示的文件删掉

一段时间后,加载完会提示:

检查jdk是否安装好:javac

1.2 Tomcat

yum上安装Tomcat,存在一定的问题,Centos7默认是tomcat7,因为yum上默认的软件包可能比较老,而我们要的是8.5~

所以我们选择,Tomcat我们手动安装即可

Apache Tomcat® - Welcome!

1.2.1 上传tomcat程序

一定保证jdk装好后,再装Tomcat,Tomcat是个java程序,所以必须要有jdk!

部署压缩包所要的两个东西,要通过yum安装一下

  1. lrzsz,可以拖动到XShell命令行zmode功能进行安装
  2. unzip,解压缩
yum install lrzsz
yum install unzip

拖动到命令行就会在“当前目录”上传并且解压缩

  • 没有自动解压缩,就这样:
unzip 压缩包名.zip
  • 我创建了tomcat的目录,然后通过拖动到命令行的方式下载在这个目录里

1.2.2 给启动脚本加上可执行权限

进入Tomcat的bin目录里

.sh后缀的文件,就是给Linux使用的启动脚本,默认情况下这些启动脚本没有可执行权限,也就是说目前启动不了,我们需要赋予他们权限

chmod +x *.sh

  • 白色变成绿色,代表拥有可执行权限~
1.2.3 启动Tomcat
sh startup.sh

要保证Tomcat的端口有没有被占用~

用ps和netstat去查看~

  • 保证8080和8005没有被占用~

Tomcat启动后,自动配置环境变量~

可以用你的ip+:8080去访问Tomcat的欢迎页面:

  • 但是这里你可能没有访问到,这是正常的

不是因为你Tomcat没有启动成功,而是因为你的云服务器的防火墙不允许8080端口的流量通过!

1.2.4 让服务器运行8080端口的流量通过

每个云服务器的操作都比较类似,以阿里云为例:

  • 就不以图片演示了,怕混淆你,因为每个人的页面可能不一样
  • 是在不行你问一下客服小姐姐

要在阿里云中打开云服务器的防火墙并允许8080端口的流量通过,你可以按照以下步骤进行操作:

  1. 登录阿里云控制台(https://cn.aliyun.com/)。
  2. 导航到云服务器ECS的管理页面。
  3. 在左侧导航栏中选择"网络与安全",然后点击"安全组"。
  4. 找到需要修改的安全组,点击其名称进入安全组配置页面。
  5. 在安全组配置页面的"规则"选项卡中,点击"添加安全组规则"。
  6. 在弹出的窗口中,选择以下配置:
  • 方向:入方向(用于接收请求)
  • 规则:自定义TCP规则
  • 端口范围:8080/8080
  • 授权对象:0.0.0.0/0(表示允许任何IP访问)或指定特定IP范围
  1. 点击"确定"保存设置。
  2. 确认添加规则后,8080端口将在该安全组中打开,允许外部访问。

1.3 MySQL

大佬文章链接

重新启动数据库:

sudo systemctl restart mariadb
  • 强烈建议去看这一篇文章,很详细很详细!
  • 按照这些走就够了~

Maridb与MySQL是两个相关的数据库管理系统。 MariaDB是由MySQL的创始人之一开发的一个分支,它保留了与MySQL兼容的特性,并且在功能和性能上进行了增强。

在技术上,MariaDB与MySQL非常相似。 因此,大多数使用MySQL的应用程序可以无缝地迁移到MariaDB上。它们使用相同的SQL语法,并且具有类似的命令和函数。只需对代码进行一些微调,就可以在MariaDB上正常运行。

MariaDB的发展目标是成为一个开源、免费的替代MySQL。 尽管两者有一些不同之处,但MariaDB仍然兼容MySQL,并且可以轻松进行数据迁移。

总之,MariaDB是一个与MySQL兼容且具有增强功能和性能的数据库管理系统。如果您对MySQL熟悉,那么使用MariaDB应该是相对简单的。

我们的sql代码在这个里面也是能很好的运行的~

  • 只不过MariaDB对大小写比较敏感

在XShell中,输入:

mysql

或者

mysql -uroot

即可进入数据库,之后的操作就跟我们的数据库一致了~

这个none的位置会随着你use数据库而变化~

退出数据库操作页面的话,使用快捷键:Ctrl D

默认是没有密码的,想要设置密码的同学可以去查阅资料然后设置~

2. 代码修改

2.1 修改数据库密码

这一步很重要,要保证每一条数据库操作都要把密码修改成空字符串!

  • 不然程序会出错!

2.2 保证端口号在Linux上的mysql保持一致

这里3306跟之前查到的一致~

2.3 修改文件路径

所有文件路径有关的代码,都要检查路径在Linux上是否正确

表白墙代码中的保存文件操作,用到的代码就错误,得更改成这样:

  • 这是一个绝对路径的写法,因为我不能保证你的Linux设备Tomcat运行的时候的相对路径
  • 这个绝对路径要根据你的Linux的Tomcat位置而定,但是不变的是,要放在webapps的项目里面~

3. 数据库的建库建表

我们的数据库现在全空着,我们得让里面有我们代码所依赖的数据库和对应的表

  • 我们之前写的.sql文件,起作用了!
  • 不过可能有些代码不注意大小写区分,所以可能会在这里出错,要调整一下!

进入数据库操作页面,把代码复制进去就行了~

4. 打包部署

4.1 pom.xml的设置

  1. 打的包是jar包,我们要改为war包
  2. 设置打的包的名字

4.2 打包

  • 双击package

在文件管理器打开:

4.3 部署

进入webapps目录:

检查一下这个项目是否存在:

  • 存在一定要删除然后再导入

  • 存在,那么我就删除(Tomcat自动解压缩,所以不用自己解压缩了)

不删除就会这样

这样就相当于白上传了

然后直接把war包拖进去:

这样就大功告成了~

  • 记得保持网络通畅

4.4 访问网站

格式:外网ip地址:8080/项目名/页面名.html

  • 不保证我的网站可持续访问!

5. 问题探测

  1. 抓包,判断是前端还是后端的问题
  2. 修改代码后务必要重新打包和部署
  • 所以平时用IDEA开发比较方便
  • 并且我们的机器去Tomcat和云服务器不冲突,所以我们可以测完在重新上线~
  1. 如果是后端问题,那就要去看tomcat的日志:

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
15天前
|
关系型数据库 MySQL 网络安全
Docker部署MySQL,2024网络安全通用流行框架大全
Docker部署MySQL,2024网络安全通用流行框架大全
|
17天前
|
存储 安全 网络安全
网络设备的部署(串行与并行)
网络设备的部署(串行与并行)
25 4
|
3天前
|
存储 人工智能 搜索推荐
社区供稿 | YuanChat全面升级:知识库、网络检索、适配CPU,手把手个人主机部署使用教程
在当下大语言模型飞速发展的背景下,以大模型为核心的AI助手成为了广大企业和个人用户最急切需求的AI产品。然而在复杂的现实办公场景下,简单的对话功能并不能满足用户的全部办公需求,为此我们发布了最新版的YuanChat应用
|
4天前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的网络教学平台的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的网络教学平台的详细设计和实现(源码+lw+部署文档+讲解等)
|
5天前
|
Cloud Native 测试技术 持续交付
构建高效稳定的云原生应用部署策略云端防御:云计算环境中的网络安全与信息保护策略
【5月更文挑战第27天】 在快速迭代和持续交付成为企业软件开发新常态的今天,如何确保云原生应用的部署效率与稳定性是每个运维工程师面临的重要挑战。本文将探讨一种综合性部署策略,该策略结合了容器化技术、微服务架构、自动化测试以及持续集成/持续部署(CI/CD)流程,旨在为现代云原生应用提供一个可靠且高效的部署模式。通过分析传统部署模式的不足,并引入先进的技术和实践,我们的目标是降低部署风险,提高部署速度,同时确保产品质量和服务的稳定性。
|
5天前
|
安全 数据管理 测试技术
网络安全与信息安全:防范漏洞、加强加密与提升安全意识深入探索自动化测试框架的设计原则与实践应用化测试解决方案。文章不仅涵盖了框架选择的标准,还详细阐述了如何根据项目需求定制测试流程,以及如何利用持续集成工具实现测试的自动触发和结果反馈。最后,文中还将讨论测试数据管理、测试用例优化及团队协作等关键问题,为读者提供全面的自动化测试框架设计与实施指南。
【5月更文挑战第27天】 在数字化时代,网络安全与信息安全已成为维护国家安全、企业利益和个人隐私的重要环节。本文旨在分享关于网络安全漏洞的识别与防范、加密技术的应用以及提升安全意识的重要性。通过对这些方面的深入探讨,我们希望能为读者提供一些实用的建议和策略,以应对日益严峻的网络安全挑战。 【5月更文挑战第27天】 在软件开发周期中,自动化测试作为保障软件质量的关键步骤,其重要性日益凸显。本文旨在剖析自动化测试框架设计的核心原则,并结合具体案例探讨其在实际应用中的执行策略。通过对比分析不同测试框架的优缺点,我们提出一套高效、可扩展且易于维护的自动
|
14天前
|
前端开发 JavaScript Java
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)五(前端页面
|
15天前
|
Linux 网络安全 Windows
网络安全笔记-day8,DHCP部署_dhcp搭建部署,源码解析
网络安全笔记-day8,DHCP部署_dhcp搭建部署,源码解析
|
12天前
|
消息中间件 Java Linux
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
2024年最全BATJ真题突击:Java基础+JVM+分布式高并发+网络编程+Linux(1),2024年最新意外的惊喜
|
10天前
|
JSON 安全 网络协议
【Linux 网络】网络基础(二)(应用层协议:HTTP、HTTPS)-- 详解
【Linux 网络】网络基础(二)(应用层协议:HTTP、HTTPS)-- 详解