搭建 Java 部署环境

news2024/11/23 23:57:26

yum

认识 yum

yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上.

包管理器就好比 "应用商店", 我们可以在应用商店上下载一些 app.

yum 起到的功能和 Maven 的依赖管理功能类似. 使用 Maven 能帮我们方便的安装一些第三方 jar 包, 而 yum 方便我们方便的安装第三方程序.

类似的, Github 也能起到 "软件仓库" 的效果, 而且确实有些编程语言的包管理工具就是基于 Github (例如 Go 语言). 只不过, Github 不光能用于分发程序, 也能管理源码并进行协同开发, 而 yum 和 maven 都是仅用于分发程序

查看软件包列表

yum list | grep [软件包关键字]   # 注意, 最好要加上 grep, 否则罗列的内容会非常多, 导致机
器很卡.

安装软件包(需要管理员权限)

yum install [软件包名字]

卸载软件包(需要管理员权限)

yum remove [软件包名字]

注意事项 

  • yum 所有的命令必须保证网络是联通情况下, 才能使用(云服务器一般网络都是良好的).
  • yum install / yum remove 必须具备管理员权限(root 用户).
  • 可以使用 ping www.baidu.com 来检测网络的畅通情况.

部署 Web 项目到 Linux

搭建Java部署环境,一共有6个步骤。

1.保证程序已开发测试通过。

在程序的pom.xml文件中添加如下代码:

<!-- 把程打成war包 -->
    <packaging>war</packaging>

    <build>
        <!-- 设置最终生成的包名 -->
        <finalName>blog</finalName>
    </build>

双击package 

 

 生成war包

 

2.服务器安装jdk。

通过包管理器yum安装

找到jdk1.8, 进行安装

 

 

安装过程中根据提示进行确认。安装完成后可以试着查看jdk版本,如果能查到说明安装成功。

 

当出现这种情况:在输入 yum install java-devel

 再次查看:安装成功了

3.服务器安装数据库。

这里使用的数据库管理系统是MariaDB,是MySQL创始人主导开发,MariaDB基于事务的Maria存储引擎,替换了MySQL的MyISAM存储引擎,用法和MySQL差不多。
以下操作都以root用户进行操作!!!
将下列步骤全部执行:

安装 mariadb 服务:

# yum install -y mariadb-server

安装 mariadb 命令行客户端:

# yum install -y mariadb

 安装 mariadb C library:

# yum install -y mariadb-libs

安装 mariadb 开发包:

# yum install -y mariadb-devel

 启动服务:

# systemctl start mariadb

设置服务开启自启动:

# systemctl enable mariadb

查看服务状态:

# systemctl status mariadb

 如果如下所示,则服务开启成功:

安装成功之后就能连接数据库,用法和MySQL一样:

 此时安装好的数据库是没有密码的,直接回车就能连接,但是要想项目能正确运行,需要把密码设置成项目所连接的数据库的密码。修改密码语句:

set password for 用户名@localhost = password(‘新密码‘);

 改好之后回到root目录下将数据库文件(即项目所用的数据库)。先将.sql文件导入到服务器中。直接将.sql文件拖到root目录下。如果不成功,使用yum先安装lrzsz工具(拖拽上传工具),再导入.sql文件就能成功了。

再进入数据库,将.sql文件运行。

到这里安装数据库就成功了,可以使用sql语句检查数据库表有没有出错。 

 

4.服务器安装tomcat。

先下载tomcat,下载成功之后传入服务器。
还是和数据库一样,拖拽进Linux目录中:
拖拽工具:

yum install lrzsz

 拖拽

 服务器后需要解压:解压工具:

yum install unzip

 解压

解压之后如图所示(可以将解压后的文件重命名):

5.把程序传到数据库并放在tomcat的webapps目录下。

即把项目的war包拖拽到tomcat的webapps下即可。

先进入到webapps目录下

 

6.启动tomcat。

当进入到bin目录下启动时,发现没有权限,是因为没有给.sh文件设置可执行的权限

修改权限: chmod +x ./*.sh 

 绿色表示可以执行

启动tomcat

访问tomcat

如果是首次访问一般是不成功的,因为云平台上的防火墙拦截了8080端口,需要在云平台的控制台,找到相应的服务器,配置安全规则。 

 

 访问tomcat则成功。

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

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

相关文章

kubernetes pod 资源限制 探针

资源限制 当定义 Pod 时可以选择性地为每个容器设定所需要的资源数量。 最常见的可设定资源是 CPU 和内存大小&#xff0c;以及其他类型的资源。 当为 Pod 中的容器指定了 request 资源时&#xff0c;代表容器运行所需的最小资源量&#xff0c;调度器就使用该信息来决定将 Pod …

JS逆向系列之猿人学爬虫第8题-验证码-图文点选

题目地址 https://match.yuanrenxue.cn/match/8本题的难点就在于验证码的识别,没啥js加密,只要识别对了携带坐标就给返回数据 回过头来看验证码 这里复杂的字体比较多,人看起来都有点费劲(感觉可能对红绿色盲朋友不太又好)&#x

为什么说Java是值传递?

值传递、引用传递 首要我们需要明确什么是值传递、什么是引用传递。 值传递&#xff1a;形参接收的是实参的拷贝&#xff08;副本&#xff09;。因此对形参的修改&#xff0c;不一定会影响实参。引用传递&#xff1a;形参接收的是实参本身&#xff0c;不会创建副本。因此对形…

flutter 手写日历组件

先看效果 直接上代码 calendar_popup_view.dart import package:flutter/material.dart; import package:intl/intl.dart;import custom_calendar.dart; import hotel_app_theme.dart;class CalendarPopupView extends StatefulWidget {const CalendarPopupView({required th…

翻出了我当时学习的笔记来了html

php&#xff1a;高级语言 web应用程序 万维网 浏览器中查看 apache&#xff1a;服务器 mysql&#xff1a;数据库 html 标签 css&#xff1a;层叠样式表 javascript&#xff1a;客户端脚本 js jquery mysql数据库基础 php语法基础 面向对象&#xff08;物件&#xff09; smar…

WebRTC | 实现数据流的一对一通信

目录 一、浏览器对WebRTC的支持 二、MediaStream与MediaStreamTrack 三、RTCPeerConnection 1. RTCPeerConnection与本地音视频数据绑定 2. 媒体协商SDP 3. ICE &#xff08;1&#xff09;Candidate信息 &#xff08;2&#xff09;WebRTC收集Candidate &#xff08;3&…

LOTO示波器实测过压保护芯片LP5300工作效果

过压保护电路是电子产品设置中经常要用到的&#xff0c;以前都是用分立元件搭的各种经典电路&#xff0c;最近LOTO虚拟示波器客户推荐了一款很便宜的集成的过压保护芯片LP5300&#xff0c;体积很小&#xff0c;使用简单&#xff0c;外接两个电容就可以了&#xff0c;下图是它的…

linux自定义网络访问规则

1.更改防火墙默认区域为trusted firewall-cmd --set-default-zonetrusted 2.新建一个zone&#xff0c;将想要访问本机80端口的ip&#xff0c;如&#xff1a;192.168.3.99 &#xff0c;添加的这个zone中&#xff0c;同时在这个zone中放行80端口。 firewall-cmd --permanent --ne…

django中使用bootstrap-datepicker时间插件

1、插件的下载 Bootstrap Datepicker是一款基 于Bootstrap框架的日期选择控件&#xff0c;可以方便地在Web应用中添加可交互的日期选择功能。Bootstrap Datepicker拥有丰富的选项和API,支持多种日期格式&#xff0c;可以自定义样式并支持各种语言。 Bootstrap Datepicker 依赖…

DolphinScheduler集群搭建详细笔记

1.DolphinScheduler Cluster部署 1.1 集群部署规划 集群模式下&#xff0c;可配置多个Master及多个Worker。通常可配置2~3个Master&#xff0c;若干个Worker。由于集群资源有限&#xff0c;此处配置一个Master&#xff0c;三个Worker&#xff0c;集群规划如下。 主机名ip服务…

Hybrid App 技术发展的趋势解读

Hybrid这个词&#xff0c;在App开发领域&#xff0c;相信大家都不陌生。Hybrid App是指介于web-app、native-app这两者之间的app&#xff0c;它虽然看上去是一个Native App&#xff0c;但只有一个UI WebView&#xff0c;里面访问的是一个Web App。Hybrid在移动领域的发展&#…

为什么要从 Splashtop Business Access 升级到 Enterprise?

远程工作只是偶尔为之的时代已经一去不复返了。它已成为一种战略必需品&#xff0c;使企业能够利用全球人才库&#xff0c;提供灵活的工作安排&#xff0c;并在不可预测的情况下确保业务连续性。 拥有安全、可靠、高效的远程访问解决方案已变得至关重要。Splashtop Business A…

【学习】若依源码(前后端分离版)之 “ 用户的权限注解”

大型纪录片&#xff1a;学习若依源码&#xff08;前后端分离版&#xff09;之 “ 用户的权限注解” 前言前端部分后端部分公开接口 结语 前言 接着来聊聊若依前后端分离版的权限注解吧。若依前后端分离版的权限注解是一种基于Spring Security和Vue的权限管理系统&#xff0c;它…

快速获得图像中像素值的小工具

之前项目中为了做lka中获得rgb图像信息&#xff0c;网上大多方案是确定相关的区域然后输出像素值&#xff0c;这个方法太麻烦&#xff0c;做了一个简单的使用鼠标点击图片某区域&#xff0c;然后直接在终端输出该区域的像素值。下面是源码&#xff1a; import cv2 import matp…

解析湖仓一体的支撑技术及实践路径

自2021年“湖仓一体”首次写入Gartner数据管理领域成熟度模型报告以来&#xff0c;随着企业数字化转型的不断深入&#xff0c;“湖仓一体”作为新型的技术受到了前所未有的关注&#xff0c;越来越多的企业视“湖仓一体” 为数字化转型的重要基础设施。 01 数据平台的发展历程…

kubernetes高性能存储-piraeus简介

piraeus简介 Piraeus 是面向 Kubernetes 的高性能、高可用性、简单、安全且与云无关的云原生存储解决方案&#xff0c;号称性能和稳定性都优于 Ceph/OpenEBS/Longhorn 等项目。Piraeus 对应的商业产品为LINSTOR 。 众所周知&#xff0c;本地存储具有高性能的优势&#xff0c;…

基于Python 简易实现接口测试自动化

目录 实现思路 统筹脚本 请求封装 日志封装 结果比对 结果邮件 用例获取及数据格式化 请求url转换 测试用例excel结构 测试报告 邮件接收结果 资料获取方法 实现思路 使用excel管理用例用例信息&#xff0c;requests模块发送http请求&#xff0c;实现了记录日志&…

科聪控制系统六大行业典型应用案例合集

01. 纺织行业 科聪移动机器人通用控制系统赋能无人接丝AGV实现丝盘自动化上下料 应用难点&#xff1a;无人接丝AGV是纺织行业无人工厂重要环节之一&#xff0c;这个环节对机器人到点精度要求非常高&#xff0c;无人接丝AGV的到位精度&#xff0c;必须确保“丝级”的准确无误&…

geeemap学习总结(2)——地图底图应用

1. 加载库中已有图层 import os os.environ[HTTP_PROXY] http://127.0.0.1:8001 os.environ[HTTPS_PROXY] http://127.0.0.1:8001 # 设置中心位置/地图层级/图层加载高度&#xff0c;加载图层 import geemap Mapgeemap.Map(center[40, 100], zoom4, height600) Map# 添加已经…

Javascript 正则

基本语法 定义 JavaScript种正则表达式有两种定义方式 构造函数 var regnew RegExp(<%[^%>]%>,g);字面量 var reg/<%[^%>]%>/g;g&#xff1a; global&#xff0c;全文搜索&#xff0c;默认搜索到第一个结果接停止i&#xff1a;ingore case&#xff0c;忽略…