【Linux】-Linux部署Javaweb项目

news2024/11/16 21:51:43

作者:学Java的冬瓜
博客主页:☀冬瓜的主页🌙
专栏:【Linux】
分享: 屋檐如悬崖 风铃如沧海 我等燕归来
时间被安排 演一场意外 你悄然走开
故事在城外 浓雾散不开 看不清对白
你听不出来 风声不存在 是我在感慨
梦想来是谁在窗台 把结局打开
那薄如蝉翼的未来 经不起谁来拆
——《千里之外》

主要内容:Linux上安装jdk1.8,安装tomcat9,MySQL 5.5。将javaweb项目部署到云服务器上并访问:在云服务器的MySQL中建库建表;确认本地项目的数据库、端口号、用户名、密码相同;使用maven打包,部署;启动tomcat服务器;地址栏上输入地址 访问云服务器项目。

在这里插入图片描述

文章目录

    • 一、环境准备
      • 1)安装JDK 1.8
      • 2)安装Tomcat 9
      • 3)安装MySql
    • 二、部署项目
      • 1)在云服务器的MySQL中建库建表
      • 2)确认本地项目的数据库、端口号、用户名、密码相同
      • 3)使用maven打包,部署
      • 4)启动tomcat服务器
      • 5)地址栏上输入地址 访问云服务器项目

一、环境准备

1)安装JDK 1.8

1.yum list | grep jdk:yum相当于手机的应用商店,|叫做管道(把第一个命令的输出作为第二个命令的输入),grep则是在搜索字符串。这段语句就是在应用商店找jdk的意思。把下面选择的文件名复制下来。
注意:下载需要联网。

在这里插入图片描述

2.yum install java-1.8.0-openjdk-devel.x86_64,注意:安装需要管理员权限。这条命令输入后,弹出确认按y再按enter键。安装完后,输入javac验证是否安装成功。成功则显示如下图:

在这里插入图片描述

2)安装Tomcat 9

由于项目中tomcat使用的是tomcat9,项目中的tomcat和servlet的版本要对应,因此在Linux中也使用该版本。
此时我们像安装jdk那样,在yum中搜索时发现没有tomcat9,因此我们可以自己去tomcat官网下载tar.gz包,直接拖进xshell(如果这步报错,先输入yum install lrzsz,是Linux的rz命令),然后解压。具体操作如下:
1> 下载tar.gz压缩包
2>把下载的tomcat的 文件名.tar.gz 压缩包拖进xshell
3> 使用 tar -zxvf 文件名.tar.gz解压缩,如果报错command,代表tar还未下载,使用 yum install tar下载(或者你使用zip包,则使用unzip 文件名.zip解压缩,如果报错则输入yum install unzip下载unzip指令)。
4> 给启动脚本相关内容赋予可执行权限:进入tomcat的bin目录,使用 chmod + x *.sh.sh 文件赋予可执行权限。执行完这一步后,.sh文件变绿了。
5> 启动 tomcat,使用:sh startup.sh

3)安装MySql

此处使用Maria DB,因为它可以兼容MySQL,且开源免费。按照以下链接安装即可:【CentOS 7通过 yum 安装 MariaDB】。最后输入:mysql -u root -p,云服务器的数据库默认没有密码,直接按enter键即可。

在这里插入图片描述

二、部署项目

1)在云服务器的MySQL中建库建表

先登录云服务器数据库 MySql -u root -p,不需要输入密码直接enter(云服务器数据库默认没有密码),将项目中的预先准备的 db.sql,复制粘贴到Linux上即可。

2)确认本地项目的数据库、端口号、用户名、密码相同

云服务器默认无密码,需要修改项目中的本地数据库密码为字符串空。
netstat -anp | grep MySQL:使用netstat -anp来显示所有的网络信息,grep MySql查询关于MySQL的网络信息。可以发现访问的MySQL的服务器端的端口是3306。

在这里插入图片描述

如果你的端口号不是3306,怎么修改?可以直接修改代码,把代码中的3306端口改为你的MySQL服务器端的端口
在这里插入图片描述

3)使用maven打包,部署

1> 在pom.xml文件中添加一下代码,固定打war包,名字叫blog_system。

在这里插入图片描述

2> 双击package,,打包。打包完成后,左边的target目录下就出现了war包。

在这里插入图片描述
在这里插入图片描述

3> 将war包拖到 Linux的 webapp目录下。右键->open in->Exploer。然后把项目移动到指定目录下。成功后如图。

在这里插入图片描述
在这里插入图片描述

4)启动tomcat服务器

在tomcat的bin目录下,sh startup.sh启动tomcat服务器,如下表示成功启动。搜索8080端口已经处于 LISTEN状态。

在这里插入图片描述


问题:

1> 启动错误,怎么办?
查看日志。
在这里插入图片描述

2> 如果tomcat的8080端口被占用?该怎么修改tomcat端口?或者怎么关闭占用8080端口的进程?

注意:一般需要8080和8005都空出来,如果有一个被占用就无法启动。
比如下面就是8005被占用:1700Java进程占用了8005端口。netstat -anp | grep 8005 查看端口。

在这里插入图片描述

ps aux | grep 进程号 可以定位到该进程。

解决:
修改端口:切换到conf目录中,grep 8005 *,可以看到在server.xml里面,使用vim打开并修改即可。
杀掉进程:kill PID


5)地址栏上输入地址 访问云服务器项目

复制你的云服务器的ip,在地址栏访问。
比如:外网ip:8080/blog_system/static/blog_login.html。但是此时如果你的云服务器没有打开8080端口的访问权限(默认只有22可以访问)就会拒绝访问。这需要修改防火墙。修改后即可正常访问。

如何修改?看下图!

防火墙->添加规则,填写端口,备注可加可不加,然后后确定。操作和结果图如下:

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

【服务器】Python一行命令搭建HTTP服务器并外网访问 - 内网穿透

文章目录 1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试 3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 转载自cpolar极点云文章:【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透」…

【专题速递】音频生成、TTS和AIGC在音乐上的运用

// AIGC的发展为音频带来了什么?AIGC如何赋能音乐创作?如何识别虚假音频?TTS可以在哪种场景下解决特定问题?7月29日LiveVideoStackCon2023上海站音频新体验专场,为您解答。 音频新体验 随着多媒体和通信网络技术的不…

开利网络受邀参与广州三会企业数字化转型专题研讨会

​7月6日,开利网络受邀出席由广州三会于广州市黄埔区组织的“广州三会第六届理事会第八次会长联席会议”,并进行了主题为“企业数字化转型如何推动企业价值再造?”的专题分享会,为各位参会来宾分享企业数字化转型常见误区及数字化…

【IC设计】ICC1 workshop lab guide 学习笔记——Lab 2 Design Planning Task5-9

文章目录 ICC1 workshop lab guide2.5 Create P/G Rings Around Macro Groups2.6 Power Network Synthesis2.7 Check the Timing2.8 Write Out the DEF Floorplan File2.9 Create 2nd Pass Design Ready for Placement ICC1 workshop lab guide 2.5 Create P/G Rings Around M…

uniapp 发送全文件 支持App端ios、android,微信小程序,H5

由于uniapp提供的API在app端只能上传图片和视频,不能上传其他文件,说以只能借助插件了。 ios端用的这个插件 获取到文件对象 免费的 这个是返回一个 filePath 可用直接用于 uni.uploadFile 上传的路径,后面自己又改的File对象 全文件上传选择…

CAD绘制三维升旗台

首先绘制长方体的底座 用交叉对角线来定位,绘制一个小一点的矩形,用来定位 大概的效果: 沿着矩形的一个角绘制三个长方体,形成护栏 用阵列或者复制等形成四个角的护栏 旋转,换成真实的效果图: 添加一个圆…

文件共享平台Pingvin Share

本文完成于 2 月上旬。最近正好应网友要求折腾了 ClamAV,所以翻出来一起发了,可以作为 ClamAV 的一个应用示例; 什么是 Pingvin Share ? Pingvin Share 是自托管文件共享平台,是 WeTransfer 的替代品。使用 Pingvin Sh…

【C语言基础】遍历

(꒪ꇴ꒪(꒪ꇴ꒪ ),我是祐言博客主页:C语言基础,Linux基础,软件配置领域博主🌍快上🚘,一起学习!送给读者的一句鸡汤🤔:集中起来的意志可以击穿顽石!作者水平很有限,如果发现错误&…

S7-1200与ABB机器人进行SOCKET通信的具体方法示例

S7-1200与ABB机器人进行SOCKET通信的具体方法示例 SOCKET通信是一种基于TCP/IP协议的通信方式,提供了程序内部与外界通信的端口并为通信双方提供了数据传输通道。 ABB机器人实现SOCKET通信必须要在Communication选项中勾选616-1 PC Interface选项功能。 具体方法可参考以下内容…

SpringBoot+Vue酒店客房管理系统

💕💕作者:程序员徐师兄 个人简介:7 年大厂程序员经历,擅长Java、微信小程序、Python、Android等,大家有这一块的问题可以一起交流! 各类成品java毕设 。javaweb,ssh,ssm&…

从YOLOv1到YOLOv8的YOLO系列最新综述【2023年4月】

作者:Juan R. Terven 、Diana M. Cordova-Esparaza 摘要:YOLO已经成为机器人、无人驾驶汽车和视频监控应用的核心实时物体检测系统。我们对YOLO的演变进行了全面的分析,研究了从最初的YOLO到YOLOv8每次迭代的创新和贡献。我们首先描述了标准…

Python 中的二维插值

本文展示了如何在 Python 中进行插值,并研究了不同的 2d 实现方法。 我们将讨论用于双变量插值的有用函数,例如 scipy.interpolate.interp2d、numpy.meshgrid 和 Python 中使用的用于平滑/插值 (RBF) 的径向基函数。 我们将使用 SciPy 和 Numpy 库实现插…

树莓派配置ubuntu server 22.04环境

背景 比起raspberry系统ubuntu更通用,结合公司项目开发需要,将树莓派4B刷上ubuntu server系统,并且安装LXDE桌面环境。 一波next 烧写镜像 用树莓派镜像烧录软件安装比较简单,选择操作系统:Other general-purpose O…

python psutil模块常用方法

psutil 是一个功能强大的跨平台第三方库,用于检索系统相关信息和进程管理。它提供了一些方便的函数和方法,可以获取 CPU 使用率、内存使用情况、磁盘信息、网络统计数据以及进程列表等。 1. 安装psutil pip install psutil2. 获取 CPU 使用率 import p…

flutter聊天界面-聊天列表 下拉加载更多历史消息

flutter聊天界面-聊天列表 下拉加载更多历史消息 在之前实现了flutter聊天界面的富文本展示内容、自定义表情键盘实现、加号【➕】更多展开相机、相册等操作Panel、消息气泡展示实现Flexible。这里把实现的聊天界面的滑动列表及下拉加载更多历史消息记录一下 聊天界面的列表使…

MySQL索引优化原则和失效情况

目录 1. 全值匹配2. 最佳左前缀法则3. 不要在索引列上做任何计算4. 范围之后全失效5. 尽量使用覆盖索引6. 使用不等于&#xff08;!或<>&#xff09;会使索引失效7. is null 或 is not null也无法使用索引8. like通配符以%开头会使索引失效9. 字符串不加单引号导致索引失…

程序员的悲哀是什么?

点击下方“JavaEdge”&#xff0c;选择“设为星标” 第一时间关注技术干货&#xff01; 免责声明~ 切记&#xff0c;任何文章不要过度深思&#xff08;任何东西都无法经得起审视&#xff0c;因为这世上没有同样的成长环境&#xff0c;也没有同样的认知水平同时也「没有适用于所…

大模型高效训练基础知识:梯度累积(Gradient Accumulationn)

梯度累积 梯度累积&#xff08;Gradient Accumulation&#xff09;的基本思想是将一次性的整批参数更新的梯度计算变为以一小步一小步的方式进行&#xff08;如下图&#xff09;&#xff0c;具体而言该方法以小批次的方式进行模型前向传播和反向传播&#xff0c;过程中迭代计算…

变革管理中的几个不错的模型小结

其他的变革模型&#xff1a; 变革管理流程&#xff1a;

二、Java的变量

二、变量 2.1、关键字与保留字 关键字 定义&#xff1a;赋予特殊含义&#xff0c;用做专门用途的字符串 特点&#xff1a;关键字的所有字母都为小写 保留字&#xff08;reserved word&#xff09; 现有Java版本尚未使用&#xff0c;但以后版本可能会作为关键字使用。自己命名…