如何在CentOS 7/Fedora 31/30/29上安装Apache Tomcat 9

时间:2020-02-23 14:30:36  来源:igfitidea点击:

今天,我们来看看如何在CentOS 7/Fedora 31/30/29上安装Apache Tomcat9. TomcatServer是由Apache Software Foundation(ASF)开发并在Apache License版本2下发行的开源Java Servlet容器。该工具使我们可以托管用Java编写的Web应用程序。 Tomcat执行Java servlet,并呈现包含Java Server Page编码的Web页面。

Tomcat 9基于最新的Java EE 8规范(例如Servlet 4.0,EL 3.1,JSP 2.4和WebSocket 1.2)构建。以下是在CentOS 7/Fedora 31/30/29上安装Apache Tomcat 9的步骤。

停用SELinux并安装curl

由于我们将以tomcat用户身份运行tomcat服务,因此禁用器将SELinux设置为允许模式:

sudo yum -y install curl vim wget
sudo setenforce 0
sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

要完全禁用它,请运行:

sudo sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
sudo reboot

第2步:在CentOS 7/Fedora 31/30/29上安装OpenJDK 11

第一步是在CentOS 7/Fedora 31/30/29上安装OpenJDK 11,因为它是Tomcat依赖项。

在CentOS 7/Fedora上安装Apache Tomcat 9

安装OpenJDK 11之后,继续在CentOS 7/Fedora 31/30/29上下载并安装Tomcat 9. 在下载之前,请从Apache检查Tomcat 9的最新版本。

export VER="9.0.27"
wget https://archive.apache.org/dist/tomcat/tomcat-9/v$VER/bin/apache-tomcat-$VER.tar.gz
tar xvf apache-tomcat-$VER.tar.gz

将生成的文件夹移动到/usr/libexec/tomcat9

sudo mv apache-tomcat-${VER} /usr/libexec/tomcat9

添加Tomcat用户和组

我们需要添加一个用户来管理Tomcat。该用户将被命名为" tomcat"

sudo groupadd --system tomcat
sudo useradd -M -d /usr/libexec/tomcat9 -g tomcat tomcat

将/usr/libexec/tomcat9目录的所有权更改为tomcat用户和组。

sudo chown -R tomcat:tomcat /usr/libexec/tomcat9

创建Tomcat Systemd服务

最后一步是为tomcat创建服务单元文件。在下面创建一个新文件:

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

然后加:

[Unit]
Description=Apache Tomcat 9
Documentation=http://tomcat.apache.org/tomcat-9.0-doc/
After=network.target syslog.target
[Service]
User=tomcat
Group=tomcat
Type=oneshot
ExecStart=/usr/libexec/tomcat9/bin/startup.sh
ExecStop=/usr/libexec/tomcat9/bin/shutdown.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

重新加载systemd并启动tomcat9服务

sudo systemctl daemon-reload
sudo systemctl restart tomcat9.service

我们可以使用以下方法检查服务状态:

$sudo systemctl status tomcat9.service
● tomcat9.service - Apache Tomcat 9
   Loaded: loaded (/etc/systemd/system/tomcat9.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2016-11-10 06:34:50 UTC; 4min 15s ago
     Docs: http://tomcat.apache.org/tomcat-9.0-doc/
  Process: 3226 ExecStart=/usr/libexec/tomcat9/bin/startup.sh (code=exited, status=0/SUCCESS)
 Main PID: 3226 (code=exited, status=0/SUCCESS)
    Tasks: 43 (limit: 1149)
   Memory: 81.5M
   CGroup: /system.slice/tomcat9.service
           └─3241 /usr/bin/java -Djava.util.logging.config.file=/usr/libexec/tomcat9/conf/logging.properties -Djava.util.logging.manager=org.apache.j>

Nov 10 06:34:50 fed29 systemd[1]: Starting Apache Tomcat 9...
Nov 10 06:34:50 fed29 startup.sh[3226]: Tomcat started.
Nov 10 06:34:50 fed29 systemd[1]: Started Apache Tomcat 9.

服务应该在端口8080上监听

$sudo ss -tunelp | grep 8080
tcp   LISTEN  0       100                         *:8080                *:*      users:(("java",pid=3241,fd=37)) uid:1001 ino:29845 sk:a v6only:0 <->

如果我们有活动的防火墙服务,则允许端口" 8080"

sudo firewall-cmd --add-port=8080/tcp
sudo firewall-cmd --reload

Tomcat的默认可以在[[http://(服务器的主机名或者IP地址):8080 /])上找到。

管理指南可从http://<IP>:8080/docs/index.html获取。

使用Apache HTTP服务器对Tomcat进行代理传递访问(可选)

我们可以配置Apache http服务器以访问Tomcat接口,而无需指定端口" 8080"

安装并启动Apache Web服务器。

sudo yum -y install httpd
sudo systemctl start httpd && sudo systemctl enable httpd
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --reload

创建tomcat配置文件

sudo vim /etc/httpd/conf.d/proxy_tomcat.conf

加:

ProxyPass /tomcat9/ajp://localhost:8009/

访问" [http://(服务器的主机名或者IP地址)/tomcat9 /]"并确认更改是否按预期进行。

配置身份验证

创建一个Tomcat用户以访问Tomcat管理器

sudo vim /usr/libexec/tomcat9/conf/tomcat-users.xml

将以下行添加到文件中:

<role rolename="admin-gui" 
<user username="admin" password="StrongPassword" roles="manager-gui,admin-gui"
</tomcat-users>

用实际管理员密码替换StrongPassword。