linux部署tomcat项目详细教程(安装linux到部署tomcat)

2023-11-10

近来想要研究下linux,所以就搭了个linux系统来配置服务器玩玩。这里分了个目录,如果已经安装好虚拟机或者linux系统的小伙伴可以直接跳过前面的安装介绍,直接看部署。

一、总步骤说明

  1. 下载需要的材料(除了linux镜像文件,其他可在我博客免费下载),这里我用到的主要有
    1)虚拟机Vmware,
    2)linux镜像文件CentOS-6.5-x86_64-bin-DVD1.iso
    3)服务器apache-tomcat-7.0.105.tar.gz
    4)jdk7u79linuxx64.tar.gz
    5)securecrt-x64.rar
    6)WinSCP.zip
  2. 安装虚拟机
  3. 创建linux系统
  4. 配置jdk
  5. 配置tomcat
  6. 部署项目

二、安装虚拟机

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后输入解压后提供的密钥即可!

三、创建linux系统

打开虚拟机,然后开始创建新的虚拟机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后等创建结束
在这里插入图片描述
在这里插入图片描述

四、配置前的准备

  1. 准备好进行操作linux的工具,我这里是使用SecureCRT 和winScp,SecureCRT进行代码操作,winScp进行文件可视化的移动操作。
  2. 由于可能会涉及到一些权限问题,所以这里直接用root用户登录,包括SecureCRT和winScp也是直接用root用户登录,密码是刚刚自定义的密码。
  3. 获取linux系统的ip,然后在本地试试能否ping通
    右键,点击这个选项在这里插入图片描述
    然后输入ifconfig
    在这里插入图片描述
    然后再本地ping看看是否能ping通
    在这里插入图片描述
    能ping通,说明没有问题,。
    注:当然你也可以修改固定的ip地址,只需要修改etc/sysconfig/network-scripts/ifcfg-etho文件即可,这是我个人的简单配置
DEVICE="eth0"
BOOTPROTO="none"
HWADDR="00:0C:29:68:52:69"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="a844414a-af21-44b4-bedd-ac6fb18a7dc4"
IPADDR="192.168.121.128"
NETMASK="255.255.255.0"
GATEWAY="192.168.121.1"


五、配置jdk

这里使用的是jdk7u79linuxx64.tar.gz。
总步骤==>添加安装包,解压,配置环境变量,测试

  1. 用winScp连接上linux,在usr目录下创建java文件夹,然后将安装包copy放在java文件夹底下
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    将安装包直接通过winScp复制到java文件底下(ctrl+c,ctrl+v)
    在这里插入图片描述
  2. 用winScp连接上linux,切换到ava目录底下,通过tar xvf命令解压jdk安装包(如果不确定自己在哪个目录。可以通过ls命令查看当前目录下的文件并且与winScp的文件目录对比即可)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    解压结束!!!
  3. 配置jdk环境变量
    直接通过winScp打开etc/profile文件
    在这里插入图片描述
    然后配置跟window差不多的环境变量,在文件底部加上这四行
    在这里插入图片描述
    然后点击保存(注意,这里需要用到root用户登录,一开始我用自定义用户登录提示我无法修改,权限不足)
  4. 测试
    首先通过source /etc/profile刷新profile文件,
    再通过java -version查看jdk版本
    在这里插入图片描述
    如果成功显示jdk版本,则说明配置成功

六、配置tomcat

tomcat的安装配置和jdk的基本一样
总步骤==>添加安装包,解压,配置环境变量,测试

  1. 在usr目录下创建tomcat文件夹,然后将安装包copy放在tomcat文件夹底下
    在这里插入图片描述
  2. 解压tomcat
    在这里插在这里插入图片描述
入图片描述
  3. 配置环境变量
    同样打开etc/profile文件,添加配置
    在这里插入图片描述
  4. 测试
    首先通过source /etc/profile刷新profile文件,
    然后直接启动tomcat,通过本地访问。
    进入tomcat的bin目录,通过startup.sh启动tomcat
    在这里插入图片描述
    然后在本地直接根据ip和端口访问
    在这里插入图片描述
    发现访问不到,后来想想可能是防火墙的原因。通过
    service iptables status查看发现防火墙果然是开着的,所以这里通过service iptables stop临时将防火墙关闭(或者也可以通过chkconfig iptables off 用就关闭,不过设置完需要重启).
    在这里插入图片描述
    关闭后本地再通过ip+端口成功访问到linux的tomcat服务器
    在这里插入图片描述

七、部署项目

前面已经部署好服务器了,接下来只要将项目部署上去即可。这里部署项目一共有两种方式。接下来会都稍微介绍下。

  1. 将项目打包为war,将其放在tomcat的webapp目录下,自动解压访问。
    跟前面一样,直接通过winScp将war包放在webapp底下
    在这里插入图片描述
    然后右键刷新,将会自动解压
    在这里插入图片描述
    我们之前已经启动了服务器了,所以这里需要将服务器关闭。由于我们就部署了一个服务器,所以可以直接使用
    shutdown.sh命令直接关闭所有服务器,然后再通过startup.sh启动项目。
    启动完,就可以通过浏览器进行访问了,我这里的访问路径为http://192.168.121.129:8080/MySsh。但是却访问不到页面
    在这里插入图片描述
    这时候需要通过winScp去看看tomcat的log日志看看哪里出问题了在这里插入图片描述
    在这里插入图片描述
    主要报错信息:java.lang.NoSuchMethodException: org.apache.catalina.deploy.WebXml addFilter.
    通过百度找到解决办法:
修改tomcat下的 conf文件夹下的content.xml的配置,在<Context></Context>中添加 <Loader delegate="true"/>

在这里插入图片描述
重启tomcat,成功访问项目
在这里插入图片描述
2. 直接将项目文件copy到tomcat的root底下
首先将之前部署的war包以及解压的文件全部删除。然后将tomcat的root底下的所有文件删除。打开项目,将项目webroot底下的所有文件复制到tomcat的root底下,
在这里插入图片描述
重启tomcat。由于我们项目是直接放在tomcat的root底下运行,访问路径不用加上路径名
http://192.168.121.129:8080/
运行结果成功访问到项目
在这里插入图片描述
个人觉得相比于打包war,这种部署项目的方式更便于维护。
以上就是全部分享内容了!!!!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux部署tomcat项目详细教程(安装linux到部署tomcat) 的相关文章

  • ALSA:snd_pcm_writei 调用时缓冲区不足

    当运行我最近从灰烬中带回来的旧程序时 我遇到了缓冲区不足的情况 该程序将原始声音文件完全加载到内存中 2100 字节长 525 帧 并准备 ALSA 进行输出 44 1khz 2 通道 有符号 16 位 if err snd pcm set
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • docker 非 root 绑定安装权限,WITH --userns-remap

    all 尝试让绑定安装权限正常工作 我的目标是在容器中绑定安装卷 以便 a 容器不以 root 用户身份运行入口点 二 docker daemon 配置了 userns remap 这样容器 主机上没有 root c 我可以绑定挂载和读 写
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • 如何为 Linux 桌面条目文件指定带有相对路径的图标?

    对于我的一个 Linux 应用程序 我有应用程序二进制文件 一个 launcher sh 脚本 针对 LD LIBRARY PATH 和一个 desktop 文件 所有这些都位于同一文件夹中 我想使用图标的相对路径而不是绝对路径 我试过了
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • 在 Tomcat 8 上配置 SSL 并连接超时

    我设置了一个密钥库并从 openssl com 获得了 SSL 证书 我遵循的具体步骤在这里 https drive google com file d 0B6PUGo7cBLcDTzdkc0pzT2pTMk0 view usp shari
  • linux-x64 二进制文件无法在 linuxmusl-x64 平台上使用错误

    我正在安装Sharp用于使用 package json 的 Nodejs 项目的 docker 映像上的映像压缩包 当我创建容器时 我收到有关 Sharp 包的以下错误 app node modules sharp lib libvips
  • 无需超级用户即可在 Linux 中打开 RAW 套接字

    我必须编写一个在 Linux 上运行的 ping 函数 语言是 C 所以 C 也可以 在网上搜索并查看源代码ping命令 事实证明我应该创建一个原始套接字 icmp sock socket AF INET SOCK RAW IPPROTO
  • 尽管 if 语句,Visual Studio 仍尝试包含 Linux 标头

    我正在尝试创建一个强大的头文件 无需更改即可在 Windows 和 Linux 上进行编译 为此 我的包含内容中有一个 if 语句 如下所示 if defined WINDOWS include
  • 使用 MAX_ORDER / 包含 mmzone.h

    根据https www kernel org doc Documentation networking packet mmap txt https www kernel org doc Documentation networking pa
  • Tomcat 连接超时

    我正在 tomcat 上运行 Spring Ext JS 应用程序 由于很少有繁重的过程需要花费大量时间 所以我会遇到以下异常 DefaultHandlerExceptionResolver 141 处理 org springframewo
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • .net-core:ILDASM / ILASM 的等效项

    net core 是否有相当于 ILDASM ILASM 的功能 具体来说 我正在寻找在 Linux 上运行的东西 因此为什么是 net core ildasm 和 ilasm 工具都是使用此存储库中的 CoreCLR 构建的 https
  • 如何使用waf构建共享库?

    我想使用构建一个共享库waf http code google com p waf 因为它看起来比 GNU 自动工具更容易 更简洁 到目前为止 我实际上有几个与我开始编写的 wscript 有关的问题 VERSION 0 0 1 APPNA
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • 如何在 *nix 中登录时运行脚本?

    我知道我曾经知道如何做到这一点 但是 如何在 unix 中登录时运行脚本 bash 可以 From 维基百科 Bash http en wikipedia org wiki Bash 28Unix shell 29 当 Bash 启动时 它
  • Apache 访问 Linux 中的 NTFS 链接文件夹

    在 Debian jessie 中使用 Apache2 PHP 当我想在 Apache 的文档文件夹 var www 中创建一个新的小节时 我只需创建一个指向我的 php 文件所在的外部文件夹的链接 然后只需更改该文件夹的所有者和权限文件夹
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica

随机推荐

  • 调用百度翻译接口c++api

    这是我之前录制的一个视频 里面有比较具体的讲解 哔哩哔哩自制的讲解视频 百度的接口api介绍网站 先贴个运行效果 界面没有做比较漂亮的优化 看起来比较丑哈哈哈哈啊 但是五脏俱全哦 贴个图吧 具体的实现思路此处不再赘述 源代码下载百度网盘链接
  • n的阶乘的位数

    输入N求N的阶乘的10进制表示的长度 例如6 720 长度为3 Input 输入N 1 lt N lt 10 6 Output 输出N的阶乘的长度 Sample Input 6 Sample Output 3 include
  • 如何使用 Selenium 实现自动化操作?

    目录 前言 一 关于Selenium 1 1 为什么选择它作为web自动化的测试工具 1 2 Selenium操作浏览器的原理 二 实现一个简单的自动化 2 1 使用自动化操作浏览器 2 2 Selenium常用的API 2 2 1 查找页
  • ffmpeg拆分合成音视频

    拆 ffmpeg i a mp4 an vcodec copy out mp4 ffmpeg i a mp4 vn acodec copy out amr 合 ffmpeg i out mp4 i out amr ok mp4
  • C++基础知识(二十五)--- STL案例之演讲比赛

    问题 24个人 分4组 每组6人 三轮比赛 每轮淘汰一半 第三轮6人决出前三名 10个评委打分 选手最终得分是去掉最高最低取平均 思路 1 用 vector 存储编号 编号对应选手 2 用 map 保存选手信息 键值是编号 实值是选手 3
  • 如何将旧硬盘数据完美迁移到新硬盘

    1 创建一个PE启动盘 准备一个装有PE的U盘或者移动硬盘 可以到网上下载一个PE工具盘的ISO文件 然后用UltraISO打开ISO文件 点击启动菜单选择写入硬盘映像 写入方式USB HDD 写入完成之后 再点击 便捷启动 选择写入新的硬
  • python array保存为csv文件,并加载

    import numpy numpy savetxt train x csv train x delimiter train x csv numpy loadtxt open train x csv rb delimiter skiprow
  • win10远程桌面连接ubuntu20(RDP)

    此方法是基于RDP Remote Display Protocol 协议 1 安装xrdp sudo apt get install xrdp 2 开启rdp服务 systemctl start xrdp 3 使rdp开机自启 system
  • IDEA 如何自动导入(import)

    如果大家正在使用一个未曾导入 import 过的类 或者它的静态方法或者静态字段 IDEA 会给出对应的建议 只要按下 option 和回车就可以接受建议 但我觉得这样做仍然很麻烦 不够智能化 怎么办呢 打开 IDEA 的首选项 找到 Ed
  • H2数据库-快速指南

    H2数据库 简介 H2是开源的轻量级Java数据库 它可以嵌入Java应用程序中或以客户端 服务器模式运行 H2数据库主要可以配置为作为内存数据库运行 这意味着数据将不会持久存储在磁盘上 由于具有嵌入式数据库 因此它不用于生产开发 而主要用
  • 成为Qt开发大牛,从入门到精通,一步一步走完整个学习路线!

    简介 本文为 C QT 学习路线大纲 资料 文章底部 Qt 可以做什么 Qt 虽然经常被当做一个 GUI 库 用来开发图形界面应用程序 但这并不是 Qt 的全部 Qt 除了可以绘制漂亮的界面 包括控件 布局 交互 还包含很多其它功能 比如多
  • 盘点一下不到100行的给力代码

    作者 景略集智 https jizhi im blog post short and excellent code 只需10行Python代码 我们就能实现计算机视觉中目标检测 from imageai Detection import O
  • qt 创建第二个ui_QT多个ui文件使用

    在使用QT做应用程序的时候几乎都会用到比较多的对话框 下面内容讲解下如何使用多个ui文件进行设计 注 下面使用的是Ubuntu16 04下的QT5 首先先建立一个工程 编译后结果如下 上面只有一个按钮 现在我们新建一个ui 然后点击该按钮来
  • 直方图-绘制子图subplot imshow

    显示好几幅图片在一个窗口内 逗号可以省略 其实imshow这个函数前两篇博客中已经开始使用了 与matlab中的使用很相似 下面介绍一下 若要显示灰度图片 参数为 cam plt cm gray 若要显示彩色图片 opencv 读入的图片默
  • Docker CE 学习笔记2 : Docker 安装后的步骤

    目录 1 以非 root 用户管理 Docker 2 配置Docker 在系统启动时运行 3 使用不同的存储引擎 4 配置Docker守护进程侦听连接的位置 4 1 配置远程访问使用systemd单元文件 参考 https docs doc
  • .net core 连接Mysql

    1 安装依赖包 在这里插入图片描述 https img blog csdnimg cn 16e74e954c414688b26af8b9d92fd793 png x oss process image watermark type d3F5
  • python -range()

    range 函数 range 101 可以用来产生0到100范围的整数 需要注意的是取不到101 range 1 101 可以用来产生1到100范围的整数 相当于前面是闭区间后面是开区间 range 1 101 2 可以用来产生1到100的
  • 时间卷积网络TCN:CNN也可以处理时序数据并且比LSTM更好

    本文回顾了 Shaojie Bai J Zico Kolter 和 Vladlen Koltun 撰写的论文 An Empirical Evaluation of Generic Convolutional and Recurrent Ne
  • top命令详解

    Top命令查看的内容 第一行是任务队列信息 06 29 43 当前时间 up 4 12系统运行时间 2 users当前登录用户数 load average 0 00 0 00 0 00系统负载 即任务队列的平均长度 第二行 为进程信息 Ta
  • linux部署tomcat项目详细教程(安装linux到部署tomcat)

    近来想要研究下linux 所以就搭了个linux系统来配置服务器玩玩 这里分了个目录 如果已经安装好虚拟机或者linux系统的小伙伴可以直接跳过前面的安装介绍 直接看部署 文章目录 一 总步骤说明 二 安装虚拟机 三 创建linux系统 四