tomcat的配置安装需要先在系统上配置好jdk环境,这里我们使用centos7.7版本的Linux系统和jdk8版本。

1、配置jdk8

我们首先到官网下载JDK8的安装包,这里我们选择tar.gz格式的压缩包下载,需要注意建议先使用浏览器下载再使用工具传输到Linux上,因为下载需要登录注册账号。

接着我们解压将安装包解压到自己想要配置的jdk安装目录下,这里我们使用/home/目录

tar -zxvf jdk-8u241-linux-x64.tar.gz -C /home/

复制

在/etc/profile中添加以下三个参数并导入

JAVA_HOME=/home/jdk_1.8.0_241
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export JAVA_HOME CLASSPATH PATH

复制

重新载入配置文件

source /etc/profile

复制

检查配置是否生效,如不生效可以重启终端试试:

[root@tiny-yun ~]# java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

复制

2、配置tomcat

tomcat的安装配置和上面几乎一样,由于我们已经在/etc/profile中设定了全局的java环境变量,因此在tomcat中就不用再特殊配置,直接就会使用默认的全局变量。

这里我们还是使用官网
提供的tar.gz压缩包来安装。

# tomcat可以直接使用wget下载
wget https://downloads.apache.org/tomcat/tomcat-8/v8.5.53/bin/apache-tomcat-8.5.53.tar.gz
# 解压到安装目录并重命名
tar -zxvf apache-tomcat-8.5.53.tar.gz /home/
cd /home
mv apache-tomcat-8.5.53 tomcat-8.5.53

复制

首先我们来看一下tomcat中的主要目录:

  • /bin 存放用于启动及关闭的文件,以及其他一些脚本。其中,UNIX 系统专用的 *.sh 文件在功能上等同于 Windows 系统专用的 *.bat 文件。因为 Win32 的命令行缺乏某些功能,所以又额外地加入了一些文件。
  • /conf 配置文件及相关的 DTD。其中最重要的文件是 server.xml,这是容器的主配置文件。
  • /log 日志文件的默认目录。
  • /webapps 存放 Web 应用的相关文件。

接着我们进入tomcat目录下的bin目录就可以看到各种各样的脚本文件,主要分为bat和sh两类,其中bat主要是在windows系统上使用的,我们可以把它们删掉,接着我们执行一些version.sh这个脚本就可以看到版本信息。

接下来我们来看一下和tomcat相关的几个变量:

  • JRE_HOME

    • 这里我们可以看到JRE_HOME这个变量是之前设置了的JAVA_HOME环境变量。

    • 如果同时定义了JRE_HOME和JAVA_HOME这两个变量,那么使用的是JRE_HOME

    • 如果只定义了JAVA_HOME,那么JRE_HOME变量值就是JAVA_HOME的变量值

    • 如果两个变量都没定义,那么tomcat无法运行

      前面我们提到过tomcat是使用Java编写的,这也就意味着它在运行的时候需要创建一个JVM虚拟机,所以如果没定义JAVA环境变量,tomcat是无法运行的

  • CATALINA_HOME

    tomcat安装目录的根目录

  • CATALINA_BASE

    tomcat实例运行的目录,默认情况下等于CATALINA_HOME,如果我们需要在一台机器上运行多个tomcat实例,可以设置多个CATALINA_BASE

  • setenv.sh

    这个脚本默认是不存在的,需要我们自己手动创建在bin目录下,在windows系统则应该是setenv.bat,我们在里面指定了JRE_HOME环境变量以及PID文件的位置,这样在运行的时候就能比较方便的定位到运行进程

    注意前面提到的CATALINA_HOME和CATALINA_BASE两个变量不能在这里设定,因为tomcat就是根据这两个变量来找到 setenv.sh的。

$ cat setenv.sh 
JRE_HOME=/home/jdk1.8.0_241/jre
CATALINA_PID="$CATALINA_BASE/tomcat.pid"

这时候运行./catalina.sh start或者是./startup.sh文件就可以启动tomcat,注意要在防火墙中放行默认的8080端口。如果没有指定PID文件的位置,在关闭tomcat的时候可能会出现错误。此外,一般不建议使用root用户来运行tomcat。

这时候运行./catalina.sh start或者是./startup.sh文件就可以启动tomcat,注意要在防火墙中放行默认的8080端口。如果没有指定PID文件的位置,在关闭tomcat的时候可能会出现错误。此外,一般不建议使用root用户来运行tomcat。

3、manager应用

tomcat本身内置了两个web应用,专门用来管理tomcat,它们分别是host-manager(管理virtual host)和manager(管理web应用)。

http://localhost:8080/host-manager/html
http://localhost:8080/manager/html

在启动tomcat之后,我们访问上面的这两个网址可以发现被403了。因为我们还没有在配置文件中增加相关的用户,为了保证安全,这里的用户默认都是禁用的,我们需要自己创建。

我们编辑tomcat目录下的conf子目录中的tomcat-users.xml,添加对应的配置即可:

<!--admin对应的是host-manager的用户-->
<!--allows access to the HTML GUI-->
<role rolename="admin-gui"/>
<!--allows access to the text interface-->
<role rolename="admin‐script"/>

<!--manager对应的是manager的用户-->
<!--allows access to the HTML GUI and the status pages-->
<role rolename="manager-gui"/>
<!--allows access to the text interface and the status pages-->
<role rolename="manager‐script"/>
<!--allows access to the JMX proxy and the status pages-->
<role rolename="manager-jmx"/>
<!--allows access to the status pages only-->
<role rolename="manager-status"/>

<!--我们这里添加一个用户,然后定义角色即可-->
<user username="tinychen" password="tinychen#321" roles="admin‐gui,manager-gui"/>

tomcat9中默认是只允许部署tomcat的机器访问manger和host-manager的页面的,因此我们需要修改tomcat目录下对应的web应用的配置文件:

vim /home/tomcat9/webapps/host-manager/META-INF/context.xml 
vim /home/tomcat9/webapps/manager/META-INF/context.xml

然后修改里面限制的IP地址为全部或者自己的IP地址即可。

<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>

# 将allow参数改为
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="^.*$" />

然后我们就可以访问web界面来查看tomcat服务器的运行状态了。

  • manager的web界面

  • host-manager的web界面

原创文章,转载请注明出处:http://b.nwumba.cn/article/117/