在CentOS 7中安装Tomcat 9

安装OpenJDK

Tomcat 9 要求Java 8及以上,本文安装OpenJDK.命令如下:

sudo yum install java-1.8.0-openjdk-devel

如果要看装Oracle Java请参考这篇文章

创建Tomcat系统用户

我们将创建一个tomcat用户和用户组,home目录为/opt/tomcat,该账户用来运行Tomcat服务:

sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat

下载Tomcat

访问Tomcat下载页面并下载最新版本

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

解压文件

tar -xzf apache-tomcat-9.0.16.tar.gz

将解压的文件移动到/opt/tomcat目录

sudo mv apache-tomcat-9.0.16 /opt/tomcat/

因为Tomcat 9更新频繁,所以我们可以创建一个软连接latest来指向最新的Tomcat目录:

sudo ln -s /opt/tomcat/apache-tomcat-9.0.14 /opt/tomcat/latest

将目录权限更换为tomcat

sudo chown -R tomcat: /opt/tomcat

确保bin目录可执行

sudo sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'

创建 systemd 服务文件

/etc/systemd/system/目录中创建 tomcat.service服务文件

sudo vim /etc/systemd/system/tomcat.service

贴入以下内容

[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/jre"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

让systemd重载

sudo systemctl daemon-reload

启动Tomcat服务

sudo systemctl enable tomcat
sudo systemctl start tomcat

查看服务状态

sudo systemctl status tomcat

配置Tomcat Web管理界面

现在可以通过8080端口访问Tomcat的页面,但我们还无法访问web管理界面。 首先需要创建一个用户。
Tomcat的用户和角色在tomcat-users.xml文件中定义,你可以改下用户名和密码。

vim /opt/tomcat/latest/conf/tomcat-users.xml

<?xml version="1.0" encoding="UTF-8"?>

<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
<user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
<user username="role1" password="<must-be-changed>" roles="role1"/>
-->
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<user username="admin" password="admin_password" roles="admin-gui,manager-gui"/>
</tomcat-users>

默认情况下管理界面只允许localhost访问,从远程ip访问是不推荐的,会有安全隐患。

开启远程访问你只需要注释或删掉/opt/tomcat/latest/webapps/manager/META-INF/context.xml文件中的以下内容。(注释部分)

<?xml version="1.0" encoding="UTF-8"?>

<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" /> -->
</Context>

还有 /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml文件中以下内容。

<?xml version="1.0" encoding="UTF-8"?>
<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" /> -->
</Context>

如果你只想指定某一IP可以访问,可以在后面增加你的公网IP,例如你公网ip是 8.8.8.8。通过正则匹配添加到上述文件的allow里面就可以了。

<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|8.8.8.8" />
</Context>

修改好以后重启 tomcat

sudo systemctl restart tomcat
喜欢博主的文章可以适当打赏哟!!!