Apache Tomcat是由Apache Software Foundation开发的开源Java Servlet实现。 除了Java Servlet之外,Tomcat还实现了其他几种Java服务器技术,包括JavaServer Pages(JSP),Java表达式语言和Java WebSocket。 Tomcat为Java应用程序提供HTTP Web服务器,支持HTTP / 2,用于JSSE和TLS虚拟主机的OpenSSL。
在本教程中,我将向您展示如何在CentOS 7服务器上安装和配置Apache Tomcat 8.5,以及如何在CentOS服务器上安装和配置Java,这是Tomcat的先决条件之一。
先决条件
- 服务器与CentOS 7 - 64bit
- 2 GB以上RAM(推荐)
- 服务器上的根权限
第1步 - 安装Java(JRE和JDK)
在此步骤中,我们将从CentOS存储库安装Java JRE和JDK。 我们将使用yum命令在服务器上安装Java 1.8.11。
运行此命令从yum安装来自CentOS存储库的Java JRE和JDK:
yum -y install java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64
这将需要一些时间,等到安装完成。
那么您应该使用以下命令检查Java版本:
java -version
你应该看到类似于下面的结果:
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-b15)
OpenJDK 64-Bit Server VM (build 25.111-b15, mixed mode)
第2步 - 配置Java家庭环境
在第一步,我们已经安装了Java。 现在,我们需要在CentOS服务器上配置JAVA_HOME环境变量,以便Java应用程序可以找到正确的Java版本,并且Tomcat需要正确设置JAVA_HOME环境,因此我们需要对其进行配置。
在配置JAVA_HOME环境之前,我们需要知道Java目录在哪里。 使用以下命令检查Java目录:
sudo update-alternatives --config java
Java目录=“/ usr/lib/jvm/ java-1.8.0- openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre ”
然后使用vim编辑环境文件:
vim /etc/environment
通过添加以下配置添加JAVA_HOME环境变量:
JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre"
保存/ etc / environment文件并退出vim。
接下来,编辑.bash_profile文件并添加JAVA_HOME变量:
vim ~/.bash_profile
在文件末尾粘贴以下配置:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-1.b15.el7_2.x86_64/jre
export PATH=$JAVA_HOME/bin:$PATH
保存文件,然后重新加载bash_profile文件。
source ~/.bash_profile
确保没有错误,最后检查JAVA_HOME环境变量:
echo $JAVA_HOME
您将看到Java路径目录。
第3步 - 安装Apache Tomcat 8.5
在这一步中,我们将在用户tomcat下安装Apache Tomcat(我们必须先创建)。
创建一个名为tomcat的用户和组:
groupadd tomcat
useradd -s /bin/false -g tomcat -d /opt/tomcat tomcat
注意 :
-s / bin / false =禁用shell访问
-g tomcat =将新用户分配给组tomcat
-d / opt / tomcat =定义用户的主目录
接下来,转到/ opt目录并使用wget命令下载tomcat:
cd /opt/
wget http://mirror.wanxp.id/apache/tomcat/tomcat-8/v8.5.6/bin/apache-tomcat-8.5.6.tar.gz
提取Tomcat并将“apache-tomcat-8.5.6”目录中的所有文件和目录移动到“tomcat”目录。
tar -xzvf apache-tomcat-8.5.6.tar.gz
mv apache-tomcat-8.5.6/* tomcat/
现在将tomcat目录的所有者更改为tomcat用户和组。
chown -hR tomcat:tomcat tomcat
第4步 - 测试Apache Tomcat
在第3步中,我们安装并配置了tomcat。 在这一步中,我们只想运行一个简短的测试来确保没有错误。
转到tomcat / bin目录并运行命令'startup.sh'来测试Apache Tomcat:
cd /opt/tomcat/bin/
./startup.sh
确保结果是“Tomcat开始”。
Tomcat现在使用端口8080,使用netstat命令检查服务器上的打开端口。
netstat -plntu
或使用Web浏览器访问端口8080的服务器IP地址(在我的情况下为192.168.1.120:8080)。 您将看到Apache Tomcat的默认页面。
接下来,停止Apache Tomcat,因为我们将在最终配置中使用一个systemd服务文件运行Tomcat。 确保tomcat目录由tomcat用户和组拥有。
cd /opt/tomcat/bin/
./shutdown.sh
chown -hR tomcat:tomcat /opt/tomcat/
第5步 - 安装Apache Tomcat服务
在本教程中,我们将使用一个systemd服务文件来运行Apache Tomcat作为tomcat用户,以便于启动和停止服务。 所以下一步是创建一个'tomcat.service'文件。
转到systemd系统目录并创建一个新的文件'tomcat.service'。
cd /etc/systemd/system/
vim tomcat.service
粘贴以下配置:
[Unit]
Description=Apache Tomcat 8 Servlet Container
After=syslog.target network.target
[Service]
User=tomcat
Group=tomcat
Type=forking
Environment=CATALINA_PID=/opt/tomcat/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
保存文件并退出vim。
重新加载systemd守护程序,然后在引导时启动并添加Apache Tomcat服务。
systemctl daemon-reload
systemctl start tomcat
systemctl enable tomcat
现在通过检查打开的端口8080来检查tomcat是否正在运行。
netstat -plntu
并检查tomcat状态,确保服务处于活动状态。
systemctl status tomcat
第6步 - 配置Apache Tomcat用户
在此步骤中,我们将为Apache Tomcat配置用户。 Tomcat已安装,默认情况下在端口8080上运行,我们可以使用Web浏览器进行访问,但是我们无法访问站点管理器仪表板。 要启用和配置Tomcat用户,请编辑文件“tomcat-users.xml”。
转到tomcat配置目录并使用vim编辑tomcat-users.xml文件。
cd /opt/tomcat/conf/
vim tomcat-users.xml
在第43行下创建一个新行并粘贴以下配置:
<role rolename="manager-gui"/>
<user username="admin" password="password" roles="manager-gui,admin-gui"/>
保存文件并退出vim。
接下来,转到manager目录并编辑context.xml文件。
cd /opt/tomcat/webapps/manager/META-INF/
vim context.xml
评论第19行和第20行。
<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>
保存文件并退出vim。
转到主机管理器目录并再次编辑context.xml文件。
cd /opt/tomcat/webapps/host-manager/META-INF/
vim context.xml
再次评论第19和20行。
<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>
保存文件并退出,然后重新启动tomcat。
systemctl restart tomcat
第7步 - 配置Firewalld
在CentOS 7中,我们有一个名为firewalld的默认防火墙工具。 它替代了iptables接口并连接到Netfilter内核代码。
在此步骤中,我们将启动firewalld服务并打开端口8080,以便我们可以从网络外部访问Apache Tomcat服务器。
启动firewalld服务,并使用systemctl命令将其添加到启动时。
systemctl start firewalld
systemctl enable firewalld
接下来,使用firewall-cmd命令将apache tomcat端口8080添加到防火墙,并重新加载firewalld服务。
firewall-cmd --zone=public --permanent --add-port=8080/tcp
firewall-cmd --reload
检查防火墙中是否提供所有服务,并检查Apache Tomcat端口8080是否打开。
firewall-cmd --list-ports
firewall-cmd --list-services
Apache Tomcat端口8080可以从网络外部访问,并且ssh端口也默认打开。
第8步 - 测试
打开您的Web浏览器,并使用端口8080输入您的服务器IP。您将看到Apache Tomcat的默认页面。
转到管理员信息中心,网址如下:
http://192.168.1.120:8080/manager/html
键入管理员用户名“ admin ”,密码为“ mypassword ”,这是我们在第5步中进行的配置。
现在转到主机管理器仪表板,网址如下:
http://192.168.1.120:8080/host-manager/html
输入您在第5步中设置的管理员用户和密码,您将看到Tomcat虚拟主机管理器。
Apache Tomcat 8.5已安装在CentOS 7服务器上。