在 CentOS7 上安装 Tomcat9

1 通过 SecureCRT 连接到阿里云 CentOS7 服务器;

2 进入到目录 /usr/local/ 中:
 cd /usr/local/

3 创建目录 /usr/local/tools,如果有则忽略:
 mkdir -p tools

4 创建 /usr/local/tomcat 目录,如果已存在则忽略:
 mkdir -p tomcat

5 进入到目录 /usr/local/tools 中:
 cd tools/

6 下载 apache-tomcat-9.0.0.M4.tar.gz 文件:
 wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.0.M4/bin/apache-tomcat-9.0.0.M4.tar.gz

7 解压缩 apache-tomcat-9.0.0.M4.tar.gz:
 tar -zxvf apache-tomcat-9.0.0.M4.tar.gz

8 将通过解压得到的 apache-tomcat-9.0.0.M4 文件复制到 /usr/local/tomcat 目录中:
 mv apache-tomcat-9.0.0.M4 ../tomcat/

9 打开文件 /etc 目录下的 profile 文件:
 vim /etc/profile
 将如下代码追加到 profile 文件末尾:
 # idea - tomcat9 config start - 2016-05-01

CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4
 CATALINA_BASE=/usr/local/tomcat/apache-tomcat-9.0.0.M4
 PATH=$PATH:$CATALINA_BASE/bin
 export PATH CATALINA_BASE

# idea - tomcat9 config end - 2016-05-01
 保持并推出:wq!

10 修改 tomcat 的端口号和字符编码:
 进入到 /usr/local/tomcat/apache-tomcat-9.0.0.M4/conf 目录中:
 cd ../tomcat/apache-tomcat-9.0.0.M4/conf
 打开 tomcat 服务的配置文件 server.xml:
  vi server.xml
 找到如下代码:
  <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
 将其中的 8080 改成 HTTP 协议的默认端口 80,改后的代码如下:
  <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

11 增加 manager-gui 图形化管理界面的访问权限(不需要的话,此步骤可忽略):
 打开 tomcat 的用户配置文件 tomcat-users.xml:
  vi tomcat-users.xml
 在 </tomcat-users> 标签前加入如下代码:
  <user username="tomcat" password="tomcat" roles="manager-gui"/>
 这里设置的 username 和 password 都是 tomcat,角色为 manager-gui;
 键入 Esc 并输入“:wq!”保持并退出;

12 进入到 /usr/local/tomcat/apache-tomcat-9.0.0.M4/bin 目录中:
 cd ../bin/

13 打开 vi catalina.sh 文件:
 在 # OS specific support. 前面加入如下代码:
  JAVA_HOME=/usr/local/jdk/jdk1.8.0_91
  JRE_HOME=$JAVA_HOME/jre
 键入 Esc 并输入“:wq!”保持并退出;

14 启动 tomcat 服务:
 ./startup.sh
 打印如下信息则表明启动 Tomcat 服务成功:
  Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-9.0.0.M4
  Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-9.0.0.M4
  Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-9.0.0.M4/temp
  Using JRE_HOME:        /usr/local/jdk/jdk1.8.0_91/jre
  Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/tomcat-juli.jar
  Tomcat started.
 打开浏览器输入 IP 地址看看吧!如果出现了我们的可爱的“小黄猫”则表明我们的 Tomcat 已提供服务啦!

15 关闭 tomcat 服务:
 ./shutdown.sh
 打印如下信息则表明关闭 Tomcat 服务成功:
  Using CATALINA_BASE:   /usr/local/tomcat/apache-tomcat-9.0.0.M4
  Using CATALINA_HOME:   /usr/local/tomcat/apache-tomcat-9.0.0.M4
  Using CATALINA_TMPDIR: /usr/local/tomcat/apache-tomcat-9.0.0.M4/temp
  Using JRE_HOME:        /usr/local/jdk/jdk1.8.0_91/jre
  Using CLASSPATH:       /usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-9.0.0.M4/bin/tomcat-juli.jar
 注意:不可连续执行多次 ./shutdown.sh 命令,多次后报如下错误:
  SEVERE: Catalina.stop:
  java.net.ConnectException: Connection refused
   at java.net.PlainSocketImpl.socketConnect(Native Method)
   at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
   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:476)
   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:498)
   at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:408)
   at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497)

16 将 tomcat9 加入到系统服务列表中:
 进入到 /etc/init.d 目录中:
  cd /etc/init.d
 创建 tomcat9 服务配置文件:
  vi tomcat9
 将如下代码加入写入到 tomcat9 配置文件中:
  # idea - tomcat config start - 2016-05-01

#!/bin/bash
   # description: Tomcat Start Stop Restart
   # processname: tomcat
   # chkconfig: 2345 20 80
   JAVA_HOME=/usr/local/jdk/jdk1.8.0_91/
   export JAVA_HOME
   PATH=$JAVA_HOME/bin:$PATH
   export PATH
   CATALINA_HOME=/usr/local/tomcat/apache-tomcat-9.0.0.M4/

case $1 in
   start)
     sh $CATALINA_HOME/bin/startup.sh
   ;;
   stop)
     sh $CATALINA_HOME/bin/shutdown.sh
   ;;
   restart)
     sh $CATALINA_HOME/bin/shutdown.sh
     sh $CATALINA_HOME/bin/startup.sh
   ;;
   esac
   exit 0

#chmod 755 tomcat
   #chkconfig --add tomcat
   #chkconfig --level 2345 tomcat on
   #chkconfig --list tomcat

# idea - tomcat config end - 2016-05-01
 键入 Esc 并输入“:wq!”保持并退出;
 其中的注意点是将 JAVA_HOME 和 CATALINA_HOME 变量设置成与我们当前配置相一致的路径;

17 为 tomcat9 分配可执行权限:
 chmod +x tomcat9

18 将 tomcat9 纳入到系统的服务列表中,即添加 tomcat9 为系统服务:
 chkconfig --add tomcat9

19 查看当前系统服务都有哪些:
 chkconfig --list
 也可以查看指定的系统服务,如这里我们指定 tomcat9 这个服务:
  chkconfig --list tomcat9
 打印如下信息:
  tomcat9         0:off   1:off   2:on    3:on    4:on    5:on    6:off
 则表明已将 tomcat9 设置为系统服务,2、3、4、5 都为 on 表示可随系统自动启动;

20 我们可以在任意目录下执行关闭、启动、重启 Tomcat9 服务啦:
 20.1 关闭 tomcat9 服务:
  service tomcat9 stop
 20.2 启动 tomcat9 服务:
  service tomcat9 start
 20.3 重启 tomcat9 服务:
  service tomcat9 restart

后记:
 linux 系统中的 /etc 目录表示“设备”,意为与硬件设备相关的信息;
 /etc/init.d 目录下的文件表示当前设备的初始化配置信息;
 命令 chkconfig 表示添加(--add)、删除(--del)、查看(--list)系统服务;

在 CentOS7 上安装 Tomcat9的更多相关文章

  1. 在CentOS7上安装JDK1.8

    在CentOS7上安装JDK1.8 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建目录 to ...

  2. 在centos7上安装Jenkins

    在centos7上安装Jenkins 安装 添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins ...

  3. 在 CentOS7 上安装 zookeeper-3.4.9 服务

    在 CentOS7 上安装 zookeeper-3.4.9 服务 1.创建 /usr/local/services/zookeeper 文件夹: mkdir -p /usr/local/service ...

  4. 在 CentOS7 上安装 MongoDB

    在 CentOS7 上安装 MongoDB 1 通过 SecureCRT 连接至 CentOS7 服务器: 2 进入到 /usr/local/ 目录: cd /usr/local 3 在当前目录下创建 ...

  5. 在 CentOS7 上安装 MySQL5.7

    在 CentOS7 上安装 MySQL5.7 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建 ...

  6. 在Centos7上安装漏洞扫描软件Nessus

    本文摘要:简单叙述了在Centos7上安装Nessus扫描器的过程   Nessus 是目前全世界最多人使用的系统漏洞扫描与分析软件,Nessus的用户界面是基于Web界面来访问Nessus漏洞扫描器 ...

  7. 如何在centos7上安装源码包

    在我们使用linux的过程中,有很多程序是通过红帽官网给的系统中安装的,但是一般来说,系统更新的速度比较慢,如果这个时候我们又想用最新版的该怎么办呢?总不能一直等系统升级吧╮(╯﹏╰)╭所以,我们可以 ...

  8. centos7上安装0penStack

    centos7上安装0penStack author:headsen chen 2017-10-09  20:41:54 个人原创,欢迎转载,请注明作者,出去,否则依法追究责任 一,准备工作(配置ip ...

  9. Centos7上安装docker (转)

    Centos7上安装docker Docker从1.13版本之后采用时间线的方式作为版本号,分为社区版CE和企业版EE. 社区版是免费提供给个人开发者和小型团体使用的,企业版会提供额外的收费服务,比如 ...

随机推荐

  1. T-SQL:毕业生出门需知系列(八)

    第8课 使用函数处理数据 8.1 函数 [名词]可移植:所编写的代码可以在多个系统上运行 8.2 使用函数 8.2.1 文本处理函数 例1:使用 UPPER() 函数--将文本转换为大写 SELECT ...

  2. iOS开发之窥探UICollectionViewController(一) -- Ready Your CollectionViewController

    之前用CollectionViewController只是皮毛,一些iOS从入门到精通的书上也是泛泛而谈.这几天好好的搞了搞苹果的开发文档上CollectionViewController的内容,亲身 ...

  3. iOS开发之SQLite--C语言接口规范(四) —— Result Values From A Query

    数据库的在上一篇博客中<SQLite之C语言接口规范(三)——Binding Values To Prepared Statements>用到了如何从查询结果中取出结果值.今天的博客就详细 ...

  4. Web前端上万字的知识总结

    下面是自己学HTML+DIV+CSS+JS时的学习笔记,给大家分享以下,相互学习.大二时候寒假在家无聊的时候想做点事,总结了一下web前端基础的东西,下面的每个字都是自己手敲的. 1.<html ...

  5. ssh整合问题总结--使用struts2+Ajax+jquery验证用户名是否已被注册

    在用户模块中的用户注册需求上,通常要进行用户名是否已被注册的验证,今天正好写了这个需求,把详细代码和所遇到的问题贴过来.在使用struts2+ajax时候,通常我们会返回json类型的数据,但是像上面 ...

  6. 2.Java基础之Runtime对象

    毕向东老师Java基础学习笔记——Runtime对象 今天学习Java中的Runtime对象后,感觉这个对象对我们主要有以下几点用处. 1.使用java代码打开本地可执行文件,比如打开一个计算器. 2 ...

  7. Vuforia unity开发摄像头问题

    Vuforia unity开发摄像头问题 项目一直在赶进度,写博的时间越来越少了~从事Unity开发也快两个月了,AR方向~ 使用的是高通家的SDK Vuforia...从工程融合一直到对unity和 ...

  8. 实用的60个CSS代码片段

    1.垂直对齐 如果你用CSS,则你会有困惑:我该怎么垂直对齐容器中的元素?现在,利用CSS3的Transform,可以很优雅的解决这个困惑: .verticalcenter{ position: re ...

  9. javaScript系列:js中获取时间new Date()详细介绍

    var myDate = new Date();myDate.getYear(); //获取当前年份(2位)myDate.getFullYear(); //获取完整的年份(4位,1970-????)m ...

  10. [WCF编程]11.错误:错误契约

    一.错误传播 服务需要向客户端报告特定错误,当WCF默认的错误屏蔽方法并不包含这一实现.另一个重要的问题与传播到客户端有关,即由于异常是针对特定技术的,因此无法跨越服务边界而被共享.要实现无缝的互操作 ...