前言
大家都知道我们在本地机器上安装配置tomcat,可能只是为了开发测试,而真正的用tomcat,是在服务器上,从安全性考虑,服务器一般都是linux,所以我们就要会在linux服务器上安装配置tomcat。
准备工作
这里有个前提条件,就是服务器已经配置了jdk,且环境变量也配置无误,没有安装配置jdk的可以参考博主前面的一篇在linux上配置jdk的文章。这里和安装jdk一样,博主还是将tomcat解压到/software/目录下。
开放端口
针对如果开启了防火墙的服务器,需要打开tomcat的监听端口,让外部能访问tomcat,这里仍是使用tomcat的默认监听端口8080.
if firewall
1
2firewall-cmd --zone=public --add-port=8080/tcp --permanent
service firewalld restartif iptables
方法一
1
2
3/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
service iptables save
service iptables restart方法二
1
2vim /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 | Tomcat的目录结构 |
tomcat8.5的问题
如果你安装的是tomcat8.5,你在进入web页面的manager时,会发现报错进不去:
注意:此时上面修改web登录账号的步骤也需要执行(如果web登录账号没修改)1
2You 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 | <Context privileged="true" antiResourceLocking="false" |
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 | <Context antiResourceLocking="false" privileged="true" > |
访问
1 | http://ip:8080 |
结语
如果你有想要安装启动多个tomcat,则可以通过修改其监听端口的方法,注意要在防火墙开放监听的端口,还可以通过docker的方法来实现在服务器上启动多个tomcat,这些大家可以参考博主前面的【拥有并启动多个tomcat】和【Docker梦工厂】。