找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 96|回复: 4

[建站] 在 Rocky Linux 9 上安装 Apache Tomcat

[复制链接]
  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
发表于 2024-11-7 22:56:59 | 显示全部楼层 |阅读模式
步骤 1. 第一步是将您的系统更新到最新版本的软件包列表。为此,请运行以下命令:
sudo dnf check-updatesudo dnf install dnf-utilssudo dnf install epel-release
步骤 2. 安装 Java。


tomcat版本与jdk版本的适配情况可在tomcat官网Apache Tomcat® - Welcome!左侧“Download”一栏的“Which version?”中查看
步骤3:创建Tomcat用户
出于安全原因,Tomcat 不应以 root 用户身份运行。创建专用用户和组:
sudo groupadd tomcat
sudo useradd -m -U -d /opt/tomcat -s /bin/false tomcat
然后,更改 Tomcat 目录的所有权:
sudo chown -R tomcat: /opt/tomcat


步骤 4. 在 Rocky Linux 9 上安装 Apache Tomcat。
默认情况下,Tomcat 在 Rocky Linux 9 基础存储库中不可用。现在运行以下命令,从官方页面下载最新稳定版本的 Apache Tomcat 到您的系统:
是linux系统则下载tar.gz的压缩包。
  1. wget https://dlcdn.apache.org/tomcat/tomcat-11/v11.0.0/bin/apache-tomcat-11.0.0.tar.gz
  2. sudo mkdir -p /opt/tomcat
  3. sudo tar xzf apache-tomcat-11.0.0.tar.gz -C /opt/tomcat --strip-components=1
复制代码
将档案解压到您想要的目录,通常/opt/tomcat:

步骤4:配置Systemd服务
为 Tomcat 创建 systemd 服务文件:
sudo nano /etc/systemd/system/tomcat.service
在文件中添加以下内容:

[Unit]
Description=Tomcat 11 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/bellsoft-java23.x86_64"
Environment="CATALINA_PID=/opt/tomcat/temp/tomcat.pid"
Environment="CATALINA_HOME=/opt/tomcat"
Environment="CATALINA_BASE=/opt/tomcat"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
Environment="JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom"
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh
[Install]
WantedBy=multi-user.target

注意:确保JAVA_HOME路径正确。你可以使用以下命令查找Java路径:
sudo update-alternatives --config java
6. 配置Tomcat为系统服务sudo systemctl daemon-reload
sudo systemctl enable tomcat
sudo systemctl start tomcat

6.1 重新加载systemd守护进程 sudo systemctl daemon-reload
6.2 启动Tomcat服务 sudo systemctl start tomcat

6.3 设置Tomcat服务开机自启 sudo systemctl enable tomcat

6.4 检查Tomcat服务状态 sudo systemctl status tomcat

验证安装:
打开浏览器,输入 http://localhost:8080,如果看到Tomcat的欢迎页面,说明安装成功。

步骤5:调整防火墙
如果您正在运行防火墙,请允许流量到 Tomcat 的默认端口 8080:
sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
sudo firewall-cmd --reload
步骤 6:访问 Tomcat
打开 Web 浏览器并导航至http://your_server_ip:8080。您应该会看到默认的 Tomcat 登录页面。
步骤 7:保护 Tomcat
编辑web.xml文件以禁用目录列表并为管理器和主机管理器应用程序添加安全约束。还建议更改 中的默认关闭端口和命令server.xml。
结论:
通过这些步骤,您已成功在 Rocky Linux 9 上安装和配置 Tomcat。对于生产环境,请考虑进一步的安全措施和优化。

需要Linux关闭防火墙,可通过如下命令:
# 暂时关闭防火墙
systemctl stop firewalld
# 永久关闭防火墙
systemctl disable firewalld
# 此外,查看防火墙状态的命令1:
systemctl status firewalld
# 或者命令2:
firewall-cmd --state
# 开放指定端口(需要在防火墙开启状态下去开放或关闭指定端口),如:3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 关闭指定端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent


  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
 楼主| 发表于 2024-11-8 00:02:36 | 显示全部楼层
就算在/etc/profile下配置了,tomcat也加载不到,这时要在tomcat的bin下找到一个名为setclasspath.sh的文件 tomcat启动的大致流程是startup.sh->catalina.sh->setclasspath.sh,而setclasspath.sh的作用就是加载环境变量

要在Linux中配置Tomcat环境变量,可以按照以下步骤进行操作:
  • 打开终端并登录到Linux系统。
  • 使用文本编辑器打开~/.bashrc文件(或者~/.bash_profile、/etc/profile等文件)
  1. sudo gedit ~/.bashrc
复制代码
在文件末尾添加以下环境变量配置信息:
  1. export JAVA_HOME=/usr/lib/jvm/bellsoft-java23.x86_64
  2. export PATH=.:$JAVA_HOME/bin:$PATH
  3. export CLASSPATH=.:$JAVA_HOME/lib
  4. export CATALINA_HOME=/opt/tomcat
  5. export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin
复制代码

这里的JAVA_HOME是指向Java JDK的安装路径,CATALINA_HOME是指向Tomcat的安装路径。

  • 保存并关闭文件。
  • 在终端中执行以下命令使环境变量生效:source ~/.bashrc或者重启终端。


  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
 楼主| 发表于 2024-11-8 00:16:40 | 显示全部楼层
http://localhost:8080要求用户输入用户名和密码,解决方法!
8080端口被另一个web服务占用的原因,
方法1、修改Tomcat的配置。找自己安装tomcat的目录,打开conf文件夹,找到server.xml,进行修改。
将port=“8080” 修改为没有被占用的端口,如我是8081,保存。重新启动Tomcat

执行以下命令以停止Tomcat服务:
sudo systemctl stop tomcat
执行以下命令以启动Tomcat服务:
sudo systemctl start tomcat

如果你的Tomcat是通过其他方式安装的,比如使用tar包解压等,你可能需要直接前往Tomcat的安装目录下的bin文件夹,然后执行shutdown.sh脚本关闭Tomcat,接着执行startup.sh脚本来启动Tomcat。
cd /path/to/tomcat/bin
sudo ./shutdown.sh
sudo ./startup.sh
  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
 楼主| 发表于 2024-11-8 02:56:35 | 显示全部楼层
Tomcat设置,服务器状态、经理应用程序、主管经理账号密码

Tomcat 11 状态页面默认可能没有启用身份验证,你可以通过编辑 conf/tomcat-users.xml 文件来配置用户和角色,并通过 conf/web.xml 文件来启用和配置状态页面的身份验证。
编辑 conf/tomcat-users.xml 文件
把下面的文件里面的内容全部删除掉
# 把下面的内容在复制进去:
  1. <?xml version='1.0' encoding='utf-8'?>
  2. <tomcat-users>
  3. <role rolename="admin-gui"/>
  4. <role rolename="admin-script"/>
  5. <role rolename="manager-gui"/>
  6. <role rolename="manager-script"/>
  7. <role rolename="manager-jmx"/>
  8. <role rolename="manager-status"/>
  9. <user username="tomcat" password="123456" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/>
  10. </tomcat-users>
复制代码

编辑 conf/web.xml 文件,找到关于状态页面的配置部分,启用身份验证:
  <security-role-ref>
    <role-name>manager-gui</role-name>
  </security-role-ref>

2、ip限制,只能tomcat所在本机访问
修改/webapps/manager/META-INF/context.xml
修改/webapps/host-manager/META-INF/context.xml

注释掉
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />
或者修改为
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="^.*$" />

保存文件并重启 Tomcat。
现在,你应该能够通过用户名和密码访问状态页面。在浏览器中访问 http://<your-tomcat-host>:<port>/manager/status,并使用之前配置的 admin 用户凭证。
请注意,Tomcat 的状态页面和管理页面应该只在安全的环境中使用,不应该在生产环境中暴露不受保护的访问。
打开浏览器进行测试,点击server status:输入账号tomcat密码123456点击确定之后会跳转管理界面。管理tomcat发布web界面。
  • 打卡等级:Lv7.热心大叔
  • 打卡总天数:279
  • 打卡月天数:3
  • 打卡总奖励:8516
  • 最近打卡:2026-05-11 09:07:12

381

主题

599

回帖

1万

积分

管理员

积分
11455
 楼主| 发表于 2024-11-8 03:32:02 | 显示全部楼层
卸载nginx(依次输入命令即可)
    sudo systemctl stop nginx.service     
    sudo systemctl disable nginx.service     
    sudo userdel -r nginx
    chkconfig nginx off     
    sudo rm -rf /etc/nginx
   sudo rm -rf /var/log/nginx     
    sudo rm -rf /var/cache/nginx/     
    sudo rm -rf /usr/lib/systemd/system/nginx.service


docbase部署Java应用
如何通过Tomcat的 DocBase 方式部署Java Web应用。DocBase 是Tomcat用于指定应用程序的文档根目录,它允许您将应用程序部署到非 webapps 目录下的任意位置。,通过修改Tomcat配置文件,使应用可以通过直接输入IP地址来访问,而无需加上8080端口号或路径名。

(1)创建docbase目录
虚拟主机docbase的路径
docBase="/data/wwwroot/szyc.cn/
创建/data/wwwroot/szyc.cn目录

[root@tomcat ~]# mkdir -p /data/wwwroot/szyc.cn

(2)移动文件
将/usr/local/tomcat/webapps/zrlog 中的所有文件移动到所创建的目录下

[root@tomcat ~]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/szyc.cn
[root@tomcat ~]# ls /data/wwwroot/szyc.cn

(3)在Windows下绑定hosts文件
Hosts文件路径:C:\windows\System32\drivers\etc\
在hosts文件下面添加(ip www.szyc.cn)

(5) 打开浏览器在地址栏输入www.szyc.cn验证服务8.配置tomcat日志
学习如何为Tomcat服务器配置日志功能,以便在应用程序运行时生成访问日志和错误日志。Tomcat作为Java应用的服务器容器,默认会记录应用程序的访问情况、错误信息和运行状态。这些日志文件对于服务器维护、错误排查、性能分析非常重要。需要修改Tomcat相关的配置文件,确保在服务器运行过程中,生成详细的日志文件,并能够通过访问日志记录所有用户请求和服务器响应情况。
(1)查看日志
[root@tomcat ~]# ls /usr/local/tomcat/logs
catalina.2024-09-28.log  catalina.out  host-manager.2024-09-28.log  localhost.2024-09-28.log  localhost_access_log.2024-09-28.txt  manager.2024-09-28.log

1.catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。
2.catalina.2024-xx-xx.log和catalina.out内容相同,前者会每天生成一个新的日志。
3.host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。
4.localhost和localhost-access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。
(2)配置生成日志
由于日志默认不会生成,需要在server.xml中配置一下。所以接下来配置新增虚拟主机的访问日志,具体方法是在对应虚拟主机的里面加入下面的配置(我们用www.szyc.cn来进行配置)
<Host name="www.szyc.cn"  appBase=""
            unpackWARs="true" autoDeploy="true">
            xmlValidation="false" xmlNamespaceAware="false">
        <Context path="" docBase="/data/wwwroot/szyc.cn/" debug="0" reloadable="true" crossContext="true"/>
#添加如下日志配置
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="szyc.cn_access" suffix=".log"
               pattern="%h %l %u %t "%r" %s %b" />
      </Host>


valve为日志文件配置;prefix定义访问日志的前缀;suffix定义日志的后缀;pattern定义日志格式。
(3)验证服务
重启tomcat服务完成后访问网站
(4)查看是否有日志生成
查看/usr/local/tomcat/logs目录下是否有日志生成,并查看生成的日志信息。
[root@tomcat ~]# ls /usr/local/tomcat/logs

至此tomcat搭建配置完成。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Discuz! X

GMT+8, 2026-5-13 19:35 , Processed in 0.038194 second(s), 24 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表