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

news2024/11/29 12:30:30

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

在这里插入图片描述

文章目录

  • 【JavaEE】项目的部署-让网络上的人都能访问你的网站
    • 1. 搭建环境
      • 1.1 jdk
      • 1.2 Tomcat
        • 1.2.1 上传tomcat程序
        • 1.2.2 给启动脚本加上可执行权限
        • 1.2.3 启动Tomcat
        • 1.2.4 让服务器运行8080端口的流量通过
      • 1.3 MySQL
    • 2. 代码修改
      • 2.1 修改数据库密码
      • 2.2 保证端口号在Linux上的mysql保持一致
      • 2.3 修改文件路径
    • 3. 数据库的建库建表
    • 4. 打包部署
      • 4.1 pom.xml的设置
      • 4.2 打包
      • 4.3 部署
      • 4.4 访问网站
    • 5. 问题探测

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

1. 搭建环境

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

  1. IDEA?
    • 错误,java的特点就是兼容性高,一处编译到处运行~
    • 只要你有 jdk,就可以编译和运行~
  2. Tomcat
    • yes
  3. 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范围
  7. 点击"确定"保存设置。
  8. 确认添加规则后,8080端口将在该安全组中打开,允许外部访问。

1.3 MySQL

https://zhuanlan.zhihu.com/p/49046496

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

**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

我的两个项目:

  1. 表白墙:登录页
  2. 博客系统:登录页

欢迎光临✿✿ヽ(°▽°)ノ✿

在这里插入图片描述

在这里插入图片描述

5. 问题探测

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

在这里插入图片描述


文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆

我们终于做成了网站了!

  1. 表白墙源码:showLove · 游离态/马拉圈2023年7月 - 码云 - 开源中国 (gitee.com)
  2. 博客系统源码:blog_system · 游离态/马拉圈2023年7月 - 码云 - 开源中国 (gitee.com)

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

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

相关文章

协议逆向工程(图

协议逆向工程流程图 协议状态机推断的一般示例 状态机方法时间轴

MySQL的存储引擎、建库、权限管理

目录 一、前言 1.MySQL的介绍 二、存储引擎 1.什么是存储引擎 2.常见存储引擎 2.1.InnoDB(MySQL默认引擎) 2.1.1.四种隔离级别 2.2.MyISAM存储引擎 2.3.Memory存储引擎 3.ACID事务 三、CRUD操作 1.插入数据 2.查询数据 3.修改数据 4.删除数据 四、数据库 1.默认…

自动化测试实践经验和教训

目录 前言: 一、所谓自动化是为了软件发布服务的,并不只是为了测试服务 二、不要事后去计算人工替代率,而是要参考自动化测试有效性 三、度量一个自动化测试的可实施性可以从其可控制性或者可测试性上来考虑 四、试点推进自动化测试 五…

WebDAV之π-Disk派盘 + Koder

Koder 支持WebDAV方式连接π-Disk派盘。 一款可以让你在iPhone、iPad上写各种编程语言代码的app,码农不要错过。 Koder是iPad和iPhone的代码编辑器。它确实具有许多功能,包括语法突出显示,代码段管理器,选项卡式编辑,查找和替换代码,编辑器主题,远程和本地文件连接等…

Java基础---枚举

枚举类型是指由一组固定的常量组成合法的类型Java中由关键字enum来定义一个枚举类型 Java中枚举的好处如下: 1-枚举可以的 valueOf 可以自动对入参进行非法参数的校验 2-可以调用枚举中的方法,相对于普通的常量来说操作性更强 3-枚举实现接口的话&#…

Day_63-65 集成学习之 AdaBoosting

目录 Day_63-65 一. 基本概念介绍 1. 集成学习 2. 弱分类器与强分类器 二. AdaBoosting算法 1. AdaBoosting算法框架介绍 2. AdaBoosting算法过程 三. 代码的实现过程 1. WeightedInstances类 2. 构造弱分类器的StumpClassifier类和抽象类SimpleClassifier 3. 主类Booster的…

Elastic 连续第三年被评为 2023 年 Gartner® Magic Quadrant™ 的 APM 和可观察性远见者

作者:Gagan Singh 我们很高兴地宣布,Elastic 连续第三年被评为 2023 年 Gartner 应用程序性能监控 (APM) 和可观测性魔力象限中的远见者。 Elastic 因其愿景的完整性和执行能力而受到认可 我们相信,Elastic 被认可为远见者,验证了…

自动化测试平台策略之:自动化测试与项目的结合之路

目录 前言: 一、自动化测试开展在整个项目中存在的一些问题 二、自动化测试与项目结合之路 三、自动化测试平台之项目系统建设 前言: 自动化测试平台是实施自动化测试的关键组成部分,它可以帮助测试团队提高测试效率、加速反馈周期&#xff0…

vue 后台返回列表H5点击按钮加载更多分页数据与van-tab记住选中状态

效果图&#xff08;点击更多订单加载&#xff0c;一次加载10条&#xff09;&#xff1a; <template><div id"order" class"wap-el page-container wap-com-page"><section><com-header></com-header></section><di…

6.1Java EE——Spring介绍

一、Spring概述 String框架的核心技术 Spring是由Rod Johnson组织和开发的一个分层的Java SE/EE一站式&#xff08;full-stack&#xff09;轻量级开源框架。它最为核心的理念是IoC&#xff08;控制反转&#xff09;和AOP&#xff08;面向切面编程&#xff09;&#xff0c;其中&…

声音合成与克隆——制作用于训练的声音数据集

前言 1.PaddleSpeech 是一个简单易用的all-in-one 的语音工具箱&#xff0c;支持语音处理的相关操作&#xff0c;如语音知别&#xff0c;语音合成&#xff0c;声纹识别&#xff0c;声音分类&#xff0c;语音翻译&#xff0c;语音唤醒等多个方向的应用开发。 这里只使用到语音…

C++之模板类重写基类构造函数(一百五十七)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

matlab[1,1]生成100个随机点

close all; clc; x linspace(0,1,200); y 0 rand(1,200); sz 25; c linspace(1,10,length(x)); scatter(x,y,sz,c,filled)

IO流学习07(Java)

序列化流&#xff08;对象操作输出流&#xff09;&#xff1a; 可以把java中的对象写到本地文件中。 public objectoutputstream(outputstream out) 把基本流包装成高级流。 public final void writeobject(object obj) 把对象序列化&#xff08;写出&#xff09;到文…

如何在Docker和Kubernetes中使用代理IP?

Docker和Kubernetes是目前非常流行的容器化技术&#xff0c;这些技术被广泛用于开发、部署和管理应用程序。在某些情况下&#xff0c;需要使用代理IP来访问特定的网络资源。本文将介绍如何在Docker和Kubernetes中使用代理IP&#xff0c;并提供详细的举例说明。 一、在Docker中使…

如何增强农业防灾减灾能力,加强灾情监测与风险预估

近日&#xff0c;农业农村部会同各部门联合下发通知&#xff0c;要求各地坚持问题导向&#xff0c;分区分类指导&#xff0c;细化实化措施&#xff0c;千方百计夺取秋粮和全年粮食丰收。文件中提到要通过加强灾害风险预报预警和灾情监测调度、分区分类做好灾情防范应对来应对气…

ASEMI整流桥GBU808参数和应用

编辑-Z 整流桥GBU808是一种常见的电子元件&#xff0c;用于将交流电转换为直流电。它由四个二极管组成&#xff0c;可以全波整流。GBU808具有高电流和高电压的特点&#xff0c;适用于各种电源和电路应用。 GBU808的主要特点之一是其高电流能力。它可以承受高达8安培的电流&…

嵌入式开发之串口通讯

串口通信(Serial Communication)&#xff0c; 是指外设和计算机间&#xff0c;通过数据信号线 、地线、控制线等&#xff0c;按位进行传输数据的一种通讯方式。这种通信方式使用的数据线少&#xff0c;在远距离通信中可以节约通信成本&#xff0c;但其传输速度比并行传输低&…

springboot会员制医疗预约服务管理信息系统

针对会员制医疗预约服务行业的管理现状&#xff0c;本会员制医疗预约服务管理信息系统主要实现以下几个目标&#xff1a; 1.系统界面简洁&#xff0c;操作简便。 2.拥有精准&#xff0c;高效的查询功能。 3.使管理人员能够及时的获得精确的报表。 4.对数据…