Centos7 Tomcat9 安装笔记

前言

有两个月没更新博客,部分原因是这两月的工作一直没写Spark程序,而是在写前端,所以虽然期间一直想写但是没有想出从哪方面入手。后端框架用的SpringBoot,前端用的是JSP、BootStrap、Echarts等,前端主要做成了大屏的样子,之前写过一段时间前端,但是没有整理笔记,导致现在再写,有些东西还要去翻原来的代码,比较麻烦,所以一直想整理一些前端的笔记,但是由于不是专业的前端,不是写的很深入,只想把自己实现的的效果对应的代码总结一下,如果只写代码的话,看起来比较单调,所以我想能有写一些前端页面,在博客里放上连接,这样看起来会比较直观。现在的博客用的是hexo,代码托管在coding上,有些页面,比如菜单、整体布局的效果在这上面不太好展现,所以想在自己的服务器用SpringBoot搭一个完整的系统,那么就要从头开始,从搭建SpringBoot程序开始,虽然SpringBoot自身带了tomcat,但是我感觉自己安装的tomcat用起来会比较方便,这就是为什么先写tomcat的安装了。 之前用过也配置过tomcat,但是没有从头到尾的在服务器上配置,下面就记录一下我的安装过程及碰到的问题,方便后面我在其他的服务上部署。

1、前提

首先安装配置JDK,我这里用的是JDK1.8.0_45

2、下载

首先到官网http://tomcat.apache.org/下载安装包,我下载的是最新版的Tomcat9

wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz

3、解压并改名

tar -zxvf apache-tomcat-9.0.12.tar.gz 
mv apache-tomcat-9.0.12 tomcat

4、启动

cd tomcat/
bin/startup.sh

关闭tomcat命令

bin/shutdown.sh

5、验证

在浏览器里输入 ip:8080,如果出现下图所示的界面就代表启动成功了。

到这里其实就可以使用tomcat了,可以将应用程序的war包放到tomcat的webapps目录下,也可以自己写一个简单的页面进行测试,如:

mkdir webapps/test
vim webapps/test/test.jsp
test tomcat

然后在浏览器里输入 ip:8080/test/test.jsp,就会看到如下页面

6、问题及解决

6.1 点击tomcat首页的Manager App进入管理页面,报没有权限的错误

bin/shutdown.sh 
vim webapps/manager/META-INF/context.xml

将Context里面的注释掉即可

<Context antiResourceLocking="false" privileged="true" >
  <!--<Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>-->
</Context>

再启动,验证问题是否还存在。如果成功了,则会出现输入用户名、密码的验证弹出框

参考:https://blog.csdn.net/cai_eternal/article/details/76069314

6.2 增加管理界面的用户名、密码

tomcat默认应该是没有设置用户、密码的、那么需要我们自己改一下配置文件来添加用户名、密码

bin/shutdown.sh 
vim conf/tomcat-users.xml

在tomcat-users里添加

<user username="admin" password="1234" roles="manager-gui"/>

参考https://blog.csdn.net/txwtech/article/details/80013261 然后启动,就可以出入上面的设置,进入管理页面了

6.3 关闭tomcat时报错(jdk1.8.x的bug)

  • 不确保每个jdk1.8版本或者在每个服务器上都有这个bug 错误如下: bin/shutdown.sh Using CATALINA_BASE: /opt/tomcat Using CATALINA_HOME: /opt/tomcat Using CATALINA_TMPDIR: /opt/tomcat/temp Using JRE_HOME: /opt/jdk1.8.0_45/jre Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar Oct 24, 2018 1:42:39 PM org.apache.catalina.startup.Catalina stopServer SEVERE: Could not contact [localhost:[8005]]. Tomcat may not be running. Oct 24, 2018 1:42:39 PM org.apache.catalina.startup.Catalina stopServer SEVERE: Catalina.stop: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.<init>(Socket.java:434) at java.net.Socket.<init>(Socket.java:211) at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:498) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:403) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497)

解决办法,例如我的jdk安装目录为:/opt/jdk1.8.0_45

vim /opt/jdk1.8.0_45/jre/lib/security/java.security

找到

securerandom.source=file:/dev/random

改为

securerandom.source=file:/dev/./urandom

然后关掉tomcat再重启就好了 参考:https://stackoverflow.com/questions/33868983/severe-could-not-contact-localhost8005-tomcat-may-not-be-running-error-while

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

React Native热更新方案

随着 React Native 的不断发展完善,越来越多的公司选择使用 React Native 替代 iOS/Android 进行部分业务线的开发,也有不少使...

3.2K7
来自专栏伪君子的梦呓

用 WebScrapy 爬取即刻关注/被关注列表

在即刻看见即友说用 WebScrapy 爬取了关注列表和被关注列表,感觉很爽,我评论了一句我觉得我可以写一个教程,然后就有人问我怎么搞了。骚话不说,教程来了。

2925
来自专栏Java技术分享

基于Metronic的Bootstrap开发框架经验总结(7)--数据的导入、导出及附件的查看处理

在很多系统模块里面,我们可能都需要进行一定的数据交换处理,也就是数据的导入或者导出操作,这样的批量处理能给系统用户更好的操作体验,也提高了用户录入数据的效率。我...

2407
来自专栏DannyHoo的专栏

错误——持续更新

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

1601
来自专栏前端技术总结

详谈js防抖和节流

函数防抖是某一段时间内只执行一次;而函数节流是间隔时间执行,不管事件触发有多频繁,都会保证在规定时间内一定会执行一次真正的事件处理函数。

1.5K38
来自专栏腾讯NEXT学位

JavaScript全栈开发-工具篇(下)

? 文章目录 ? 四、测试工具 1. 单元测试 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。常见的单元测试工具有: * ...

1142
来自专栏Alan's Lab

在 Angular 2 Component 中使用第三方 JS 库

本文所有内容以 Angular 2 Quick Start 项目为基础,使用 TypeScript 语言。

1833
来自专栏前端人人

React多页面应用4(webpack自动化生成多入口页面)

本教程总共7篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章! 1.React多页面应用1(webpack开发环境搭建,包...

5815
来自专栏.╂遊牧的专栏

整合 Django + Vue.js 框架快速搭建web项目

在工作中我们经常须要构件一些基于 web 的项目,例如内部测试平台、运维系统等。本篇主要介绍如何使用后端 Django + 前端 Vue.js 的技术栈快速地搭...

38.6K12
来自专栏QQ音乐技术团队的专栏

electron 构建跨平台桌面应用

昨日(2016.09.13)本文发表后,获得了一定的阅读和转发量,但经部分网友反馈和仔细审核后发现,在与 NW.js 对比的环节,言辞欠妥,且数据的真实性有待考...

1.1K10

扫码关注云+社区

领取腾讯云代金券