Linux之J2EE项目部署与发布(Linux版本)

news2025/7/18 20:19:29

🎉🎉欢迎来到我的CSDN主页!🎉🎉

🏅我是君易--鑨,一个在CSDN分享笔记的博主。📚📚

🌟推荐给大家我的博客专栏《LInux实战开发》。🎯🎯

🎁如果感觉还不错的话请给我关注加三连吧!🎁🎁

💖期待你的加入,一起学习,一起进步!💖💖

前言

        在Linux前期的博客分享中我与老铁们分享了有关在虚拟机上安装Windows系统并且部署项目文件,而且成功在主机上访问成功。上期的博客中教到大家如何去在虚拟机安装Linux操作系统,今天的这期博客中基于上一期博客,今天与大家分享的是如何在Linux系统配置我们的开发环境并且部署项目。

一、JDK及Tomat的部署安装

        将需要使用的安装包及压缩包上传到Linux系统上。

 

        上图所示代表我们安装包导入成功。有些的服务器连接工具支持拖拽方式导入,有些需要使用命令,根据情况而定。(博主使用的是mobalxterm)

1. JDK的安装

1.1 解压jdk安装压缩包

        在服务连接工具中输入如下指令进行解压

指令:tar -zxvf +压缩包名称(z字母可以省略)

         到我们再次查看该文件目录时,会生成一个解压后的jdk文件夹

 1.2 配置jdk的环境变量

        与Windows系统不同的是,Linux系统配置不是在高级系统设置中配置,而是在/etc/profile文件下进行编辑添加配置。

配置步骤:

  1. vim /etc/profile  --->进入该文件中
  2. 按i键进入编辑模式
  3. 将配置环境的代码添加到文件末端(配置变量文件代码如下)
#java environment
export JAVA_HOME=/javaxl/jdk1.8.0_151(自身jdk解压路径)
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

1.3 验证是否配置成功

输入指令设置环境变量生效,在输入指令查看是否成功配置

指令:source /etc/profile--->设置环境变量生效

           java -version----->查看jdk版本

2. Tomcat的安装

2.1 解压安装包

指令:tar -zxvf +压缩包名称(z字母可以省略)

         同安装jdk一样也会生成对应的文件夹

2.2 验证Tomcat是否安装成功

        Linux的Tomcat文件目录与Windows系统的文件目录一致,我们进入到Tomcat的bin文件下,找到start.sh,通过运行start.sh启动服务器;与Windows,Windows是通过startup.bat启动。启动之后我们在主机进行访问,访问成功代表Tomcat配置成功

指令:./startup.sh ----->启动服务器

           

 

        我们可以看到无法访问到服务器,是因为防火墙的原因,在Windows系统中主机发主机访问虚拟机的服务器时需要关闭防火墙的服务,因此Linux也是如此,需要我们对防火墙进行设置。 

 2.3 设置防火墙

 有关防火墙设置的指令:

#开放端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
#跟新防火墙规则
firewall-cmd --reload
#防火墙列表
firewall-cmd --zone=public --list-ports
#防火墙状态
systemctl status firewalld
#启动防火墙
systemctl start firewalld
#关闭防火墙
systemctl stop firewalld.service

#设置开机不自启动

systemctl disable firewalld.service

#设置开机自启动

systemctl enable firewalld.service

 

         关闭防火墙主机可以访问服务器,但是关闭防火墙后不安全。重新启动服务器,在主机网页上就可以进行访问了。

 

 

        关闭防火墙让主机访问服务器有安全风险,因此我们采取较安全的方式去让主机访问服务器,让防火墙开设一个端口号,使主机可以通过端口号访问到服务器。(前提示要开启防火墙)后续配置数据库也需要开放一个端口号让主机进行访问,因此一起设置了,设置好之后需要刷新防火墙状态方可使用。

         然后再在主机上去访问我们的服务器,下图代表成功访问也说明了Tomcat配置成功

二、安装MySql数据库

1. 卸载mariadb,否则安装MySql会出现冲突(先查看后删除再查看)

        因为Linux系统会自带一个数据库,因此防止我们在安装 MySQL数据发生冲突,所以我们要查看原有的是否存在,存在的话要把原有的删除掉再进行安装。

 相关的指令:

  1. rpm -qa|grep mariadb  --->查看数据库
  2. rpm -e --nodeps+数据库文件名  ---->删除指定的数据库

2.  安装MySQL数据库

2.1 解压安装包

        没有导入数据库安装包的可以执行以下指令进行下载安装包

下载数据库安装包指令:wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.35-1.el7.x86_64.rpm-bundle.tar

        下载好了或者导入好了数据库安装包之后,接下来是将数据库安装包解压到指定目录。

因此我创建一个文件夹用来存放我的数据库,将MySQL数据库安装包解压到我们刚才创建好的文件夹中。

涉及的指令命令: 

  1. tar -xvf +数据库安装包 -C +指定的文件夹

2.2 安装数据库

        安装解压后对应的数据库文件安装包。

 相关指令:

  1. rpm -ivh + 要安装的文件

开始安装,-ivh 其中i表示安装,v表示显示安装过程,h表示显示进度

 2.3 配置数据库

        安装好指定的数据文件之后,启动我们的Mysql服务,对数据库进行一系列配置。其中当我们要进行对数据库默认密码进行修改时,Linux系统与Windows系统有所不同,Linux更加严格,需要我们设置密码校验策略(0 or LOW),要不密码太LOW不让你过,而且设置密码校验长度,要不密码太短不让你过(多次测试发现密码最小长度为4位)的一系列设置方可修改密码。

 进入数据库服务

 修改用户密码

设置访问权限 

相关指令: 

  1. systemctl start mysqld  ---->启动数据库服务
  2. grep "password" /var/log/mysqld.log  ---->查看数据库默认设置的密码
  3. mysql -uroot -p   ---->进行数据库用户登陆
  4. set global validate_password_policy=0 ---->设置密码校验策略(0 or LOW)
  5. set global validate_password_length=4  ----->设置密码校验长度(长度4)
  6. set password = password("要设置的密码")   ------>设置密码
  7. FLUSH PRIVILEGES  ------>刷新数据库服务
  8. use mysql ----->使用数据库
  9. GRANT ALL PRIVILEGES ON *.* TO '用户账号'@'%' IDENTIFIED BY '用户密码' WITH GRANT OPTION   ----->设置指定用户的全部权限
  10. exit ---->退出数据库

3. 主机访问数据库

        完成上诉操作后就可以在主机的数据库中进行访问了。

三、部署前后端分离项目后端接口

步骤:

  1. 开发工具启动后台项目测试
  2. maven install将项目打包
  3. 将打包好的项目放入Linux中tomcat/webapps/文件下
  4. 启动tomcat
  5. 浏览器测试

接下来是具体操作

1. 导入项目包

        找到Tomcat文件夹下的webapps文件夹,将项目包导入进去,导入方式和导入安装包的方式一致。

 

2. 启动服务器加载项目

         进入到bin目录下先停止服务器,再重新启动加载项目。然后在主机的网页上进行访问项目。

         查看项目的数据库配置文件,在数据库中创建对应的数据库并导入数据。

        最后重新启动服务器后网页再进行访问项目 

 四、扩展:部署单体项目(利用另外的端口号访问)

方式一:(不是一个服务器用两个端口运行两个项目,修改端口号)

tomcat目录下的conf文件夹中,编辑server.xml的内容,修改端口号即可。

        重新启动服务器加载项目,在主机运用修改后的端口号访问即可。 然后将项目包导入到webapps文件夹下;再新创建一个防火墙端口允许访问,则该端口与修改后的端口号一致,刷新防火墙状态启用新建的端口号;最后重新启动服务器加载项目,在主机用新的端口号访问项目即可。

方式二:(新增一个端口号访问项目)

1. 部署准备

步骤如下:

  1. 首先进入到tomcat目录下
  2. mkdir webapps1  ---》创建一个和webapps 同目录的webapps1
  3. cp -r webapps/* webapps1/ -------》复制webapps的全部内容到webapps1
  4. 复制conf/Catalina文件夹并命名为Catalina1
  5. cd conf ---->然后进入到tomcat目录下的conf文件夹中
  6. vi server.xml  ------>编辑这个文件内容
1.1 创建文件夹

1.2 编辑server.xml

        server.xml已有第一个项目的配置信息,现在需要新增第二个项目的配置,在Server节点下,新增Service节点;第2个Service节点复制第1个Service内容。复制后,做如下端口等配置修改。

 <Service name="Catalina1">
    <Connector port="8082" protocol="HTTP/1.1"
               maxThreads="5000"
               minProcessors="100"
               maxProcessors="1000"
               minSpareThreads="100"
               maxSpareThreads="1000"
               enableLookups="false"
               URIEncoding="utf-8"
               acceptCount="1000"
               connectionTimeout="20000"
               disableUploadTimeout="ture"
               redirectPort="8444" />
    <Engine name="Catalina1" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>
      <Host name="localhost"  appBase="webapps1"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
      </Host>
    </Engine>
  </Service>
1.3 在webapps1中导入项目包 
1.4 运行服务器配置数据库 
1.5 创建一个对应端口的防火墙规则

2. 主机访问实现 

        这就是通过调整设置在一个Tomcat下运用两个端口号实现两个不同项目的部署,并且成功在主机页面访问。

        本期的博客分享到此结束,三连加关注支持博客一下呗 

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

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

相关文章

高阶JAVA篇-深入了解字符集

&#x1f525;博客主页&#xff1a; 小扳_-CSDN博客 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 字符集的说明 1.1 ASCII 字符集 1.2 GBK 字符集 1.3 UTF-8字符集 2.0 字符集的编码与解码 2.1 编码提供了常见的方法 2.2 解码提供了常见的方法 1.0 字符集的说明 字…

【爬虫系统设计系列】模板爬虫的动态配置策略设计与实现

文章目录 1. 写在前面2. 页面配置规划3. 制定模板格式4. 模板引擎实现5. 模板爬虫优势 1. 写在前面 作为一名爬虫开发者来说&#xff0c;涉及数据采集和爬虫开发时&#xff0c;往往都面临着各种挑战。包括技术复杂性、维护成本以及数据源结构的不断变化 早期我们对爬虫开发方式…

【蓝桥杯选拔赛真题45】python调和级数 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

目录 python调和级数 一、题目要求 1、编程实现 2、输入输出 二、算法分析

众和策略:微软大动作

当地时间周二&#xff0c;美股首要指数全线收涨。但从月度数据来看&#xff0c;美股首要指数录得“三连跌”&#xff0c;10月份&#xff0c;道指跌1.36%&#xff0c;标普500指数跌2.2%&#xff0c;纳指跌2.78%。其间&#xff0c;标普和道指均为2020年3月以来初次呈现三个月连跌…

不容错过的设计软件,产品设计必看

一.图片绘制和处理工具 产品设计很多时候是需要完成产品效果图的相关工作&#xff0c;所以一些图片绘制和处理工具&#xff0c;二维或三维的都需要了解一下。 2D软件&#xff1a; 1、photoshop(PS) AdobePhotoshop&#xff0c;简称“PS这是Adobe开发并发布的一款图片处理软…

innovus: set_ccopt_property的基本用法

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 clock route clock route的net type分为三种&#xff0c;分别是root、trunk和leaf&#xff0c;其中root是指fanout超过routing_top_fanout_count约束的net&#xff0c;leaf是指…

mysql:B+树/事务

B树 : 为了数据库量身定做的数据结构 我们当前这里的讨论都是围绕 mysql 的 innodb 这个存储引擎来讨论的 其他存储引擎可能会用到hash 作为索引,此时就只能应对这种精准匹配的情况了 要了解 B树 我们先了解 B树, B树 是 B树 的改进 B树 有时候会写作 B-树 (这里的" -…

GB28181协议怎样执行保活命令

前言 GB28181协议是视频监控领域的国家标准&#xff0c;本文将解析如何在FFmpeg中增加对GB28181协议的支持&#xff0c;使其可以与支持GB28181协议的设备进行通信与控制&#xff0c;实现设备的注册、保活以及流媒体的传输。 背景介绍 GB28181协议指的是国家标准GB/T 28181—…

自学SLAM(6)相机与图像实践:OpenCV处理图像与图像拼接(点云)

前言 如果写过SLAM14讲第一次的作业&#xff0c;或者看过我之前的运行ORB_SLAM2教程应该都安装过OpenCV了&#xff0c;如果没有安装&#xff0c;没关系&#xff0c;可以看我之前的博客&#xff0c;里面有如何安装OpenCV。 链接: 运行ORB-SLAM2&#xff08;含OpenCV的安装&…

加强城市内涝积水监测系统建设,提高城市预警功能

近年来&#xff0c;随着城市化进程的不断加快&#xff0c;城市内涝问题愈发凸显&#xff0c;给城市的生命线带来了严重威胁。为了及时掌握城市内涝的情况&#xff0c;保障城市的正常运行&#xff0c;各地纷纷建立了城市内涝监测系统。城市内涝监测系统作为城市生命线的重要组成…

Redis与MySQL的数据情感:延迟双删的秘密揭示

Redis与MySQL的数据情感&#xff1a;延迟双删的秘密揭示 前言第一&#xff1a;mysql与redis数据不一致问题第二&#xff1a;为什么需要双删第三&#xff1a;如何实现延迟双删 前言 在现代应用程序中&#xff0c;MySQL 和 Redis 是两种常用的数据存储解决方案。然而&#xff0c…

金蝶云星空自定义校验器和使用

文章目录 金蝶云星空自定义校验器和使用 金蝶云星空自定义校验器和使用 1、创建类&#xff0c;并继承抽象接口 using Kingdee.BOS.Core; using Kingdee.BOS.Core.Validation; using System;namespace mm.K3.SCM.App.Service.PlugIn.SC.Validator {public class AfterOrderChe…

Python使用got库如何写一个爬虫代码?

got库是一个Python的HTTP库&#xff0c;可以用于爬取网页数据。它提供了简单易用的API&#xff0c;支持异步请求和爬虫IP设置等功能。使用got库进行爬虫开发&#xff0c;可以快速地获取所需数据。下面是使用got库进行爬虫的基本步骤&#xff1a; 1、安装got库&#xff1a;可以使…

如何正确学习中国传统画——画家蒋旗

艺术简介 蒋旗&#xff1a; 师从张建中、张立辰 授教于郭石夫、陈曦林、薛永年、张旭光、乔森、于光华、高卉民、潘晓云 中国书画院院士 清华美院大写意花鸟画高研班助教导师 安徽美术家协会会员 泗县美术家协会副主席 青藤画社社长。 在艺术多元发展的当下&#xff0c…

【23真题】Top3简单专业课似双非!

今天分享的是23年复旦大学957的信号与系统试题及解析。 本套试卷难度分析&#xff1a;这套卷子平均分为120左右&#xff0c;最高分145分。22年复旦大学957信号与系统&#xff0c;我也发布过&#xff0c;若有需要戳这里自取&#xff01;本套试题内容难度中等偏下&#xff0c;说…

AutoGen完整教程和加载本地LLM示例

Autogen是一个卓越的人工智能系统&#xff0c;它可以创建多个人工智能代理&#xff0c;这些代理能够协作完成任务&#xff0c;包括自动生成代码&#xff0c;并有效地执行任务。 在本文中&#xff0c;我们将深入探讨Autogen&#xff0c;并介绍如何让AutoGen使用本地的LLM Auto…

山西电力市场日前价格预测【2023-11-02】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-11-02&#xff09;山西电力市场全天平均日前电价为151.67元/MWh。其中&#xff0c;最高日前电价为280.23元/MWh&#xff0c;预计出现在22:15。最低日前电价为0.00元/MWh&#xff0c;预计出…

编程助手DevChat:让开发更轻松

#AI编程助手哪家好&#xff1f;DevChat“真”好用 # 目录 前言一、安装Vscode1、下载链接2、安装 二、注册DevChat1、打开注册页2、验证成功完成邮箱绑定3、绑定微信可获得8元 三、安装插件四、配置Access Key1、获取Access Key2、设置Access Key①、点击左下角管理&#xff08…

(五)库存超卖案例实战——使用zookeeper分布式锁解决“超卖”问题

前言 本节内容使用zookeeper实现分布式锁&#xff0c;完成并发访问“超卖”问题的解决。相对于redis分布式锁&#xff0c;zookeeper能够保证足够的安全性。关于zookeeper的安装内容这里不做介绍&#xff0c;开始本节内容之前先自行安装好zookeeper中间键服务。这里我们利用创建…

Redis与Mysql的数据一致性(双写一致性)

双写一致性&#xff1a;当修改了数据库的数据也要同时的更新缓存的数据&#xff0c;使缓存和数据库的数据要保持一致。 一般是在写数据的时候添加延迟双删的策略 先删缓存 再修改数据 延迟一段时间后再次删除缓存 这种方式其实不是很靠谱 一致性要求高 共享锁&#xff1a;读…