Fork me on GitHub

linux上的tomcat

前言

大家都知道我们在本地机器上安装配置tomcat,可能只是为了开发测试,而真正的用tomcat,是在服务器上,从安全性考虑,服务器一般都是linux,所以我们就要会在linux服务器上安装配置tomcat。

准备工作

这里有个前提条件,就是服务器已经配置了jdk,且环境变量也配置无误,没有安装配置jdk的可以参考博主前面的一篇在linux上配置jdk的文章。这里和安装jdk一样,博主还是将tomcat解压到/software/目录下。

开放端口

针对如果开启了防火墙的服务器,需要打开tomcat的监听端口,让外部能访问tomcat,这里仍是使用tomcat的默认监听端口8080.

  1. if firewall

    1
    2
    firewall-cmd --zone=public --add-port=8080/tcp --permanent
    service firewalld restart
  2. if iptables

  • 方法一

    1
    2
    3
    /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
    service iptables save
    service iptables restart
  • 方法二

    1
    2
    vim /etc/sysconfig/iptables -A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
    service iptables restart

启动、重启和关闭

tomcat的启动、重启和关闭其实就是执行tomcat/bin/下的startup.sh、restartup.sh和shutdown.sh文件。

进入到/software/tomcat/bin目录:

1
2
3
./startup.sh
./restartup.sh
./shutdown.sh

修改web登录账号

1
vim /software/tomcat/conf/tomcat-users.xml

加上:

1
2
3
4
5
6
7
8
<role rolename="manager"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin"/>
<role rolename="admin-gui"/>
<user username="root" password="root" roles="admin-gui,admin,manager-gui,manager-script,manager-jmx,manager-status,manager"/>

补充

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Tomcat的目录结构
·bin //存放Tomcat的命令脚本文件
·conf //存放Tomcat服务器的各种配置文件,最主要是server.xml
·lib //存放Tomcat服务器支撑jar包
·logs //存放日志文件
·temp //存放临时文件
·webapps //web应用所在目录,外界访问web资源的存放目录
·work //Tomcat的工作目录
web应用的目录结构
webapp -- web应用所在目录
|--- html, jsp, css, js文件等 -- 这些文件一般在web应用根目录下,根目录下的文件外界可以直接访问.
|--- WEB-INF 目录 -- java类、jar包、web配置文件,存在这个目录下,外界无法直接访问,由web服务器负责调用.
|--- classes 目录 -- java类
|--- lib 目录 -- java类运行所需要的jar包
|--- web.xml 文件 -- web应用的配置文件

tomcat8.5的问题

如果你安装的是tomcat8.5,你在进入web页面的manager时,会发现报错进不去:
注意:此时上面修改web登录账号的步骤也需要执行(如果web登录账号没修改)

1
2
You are not authorized to view this page.
By default the Host Manager is only accessible from a browser running on the same machine as Tomcat. If you wish to modify this restriction, you'll need to edit the Host Manager's context.xml file...

这个问题在tomcat的官网上也有说明,解决方法如下:
在tomcat/conf/Catalina/localhost/下新建一个文件manager.xml,写入:

1
vim tomcat/conf/Catalina/localhost/manager.xml

1
2
3
4
<Context privileged="true" antiResourceLocking="false"   
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="^.*$" />
</Context>

tomcat8.5的host manager进不去,报403错误,解决方法如下:
修改tomcat/webapps/host-manager/META-INF/context.xml文件(使之允许所有IP):

1
vim tomcat/webapps/host-manager/META-INF/context.xml

1
2
3
4
<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="^.*$" /> #修改这里
</Context>

访问

1
http://ip:8080

结语

如果你有想要安装启动多个tomcat,则可以通过修改其监听端口的方法,注意要在防火墙开放监听的端口,还可以通过docker的方法来实现在服务器上启动多个tomcat,这些大家可以参考博主前面的【拥有并启动多个tomcat】和【Docker梦工厂】。

-------------本文结束感谢您的阅读-------------
如果您对博主的原创满意,欢迎您继续支持下博主~