我正在尝试为 Tomcat 6.0.24 实例设置管理应用程序。我所做的所有搜索都没有找到我可以使用的任何东西。我正在为 Apache 2.2.14 使用此配置:
Alias /manager /usr/share/tomcat6-admin/manager
<Directory "/usr/share/tomcat6-admin/manager">
Options Indexes FollowSymLinks
AllowOverride None
allow from all
</Directory>
ProxyPass /manager ajp://localhost:8009/manager
Run Code Online (Sandbox Code Playgroud)
在 tomcat-users.xml 我有这个:
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="admin"/>
<role rolename="operator"/>
<role rolename="manager"/>
<user username="admin" password="nopasswordforyou" roles="admin,tomcat,manager"/>
<user username="operator" password="nevermind" roles="operator"/>
</tomcat-users>
Run Code Online (Sandbox Code Playgroud)
我找到了建议我需要manager-gui安装和定义角色的文档,但这似乎是 Tomcat 7,而不是 Tomcat 6。
manager.xml 是 Ubuntu Lucid Lynx 10.04 默认提供的:
<Context path="/manager"
docBase="/usr/share/tomcat6-admin/manager"
antiResourceLocking="false" privileged="true" />
Run Code Online (Sandbox Code Playgroud)
如果我/manager从 Web 浏览器访问,我会收到来自 Tomcat 的 404 错误:“请求的资源不可用”。如果我访问/manager/images我得到同样的东西。如果我访问,/manager/401.jsp我会得到实际页面。
此外,server.xml 不仅有通常的 Realm(UserDatabaseRealm),还有用于 MySQL 认证的Realm (JDBCRealm)。调查这表明用户的角色manager不存在admin;我通过以下方式解决了这个问题:
INSERT USER_ROLE_DB SET USER_NAME='admin', ROLE_NAME='manager';
Run Code Online (Sandbox Code Playgroud)
我重新启动了 Tomcat,虽然我怀疑这有点矫枉过正。没变。我在 catalina.out 或 localhost.* 日志文件中没有看到任何错误。
我错过了什么?不同领域之间的相互作用是什么?我如何让经理应用程序工作?
小智 4
我也遇到过同样的情况,tomcat管理器没有启动。我在我的logs/manager.DDD-MM-YY.log中发现了这个异常:
org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter CSRF
java.lang.ClassNotFoundException: org.apache.catalina.filters.CsrfPreventionFilter
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
...
Run Code Online (Sandbox Code Playgroud)
引发此异常的原因是我使用了没有 CSRF 预防过滤器的 tomcat 版本。
Tomcat 6.0.24 中没有 CSRF 预防过滤器。第一个拥有它的版本是 6.0.30 版本(至少根据变更日志)。
结果,Tomcat Manager 与我使用的 Tomcat 版本不兼容。我找到了这个问题的描述。
修复步骤:
现在您应该能够访问 tomcat 管理器了。
小智 2
404的意思是你没有文件可以访问。我在 Amazon EC2 上安装了 tomcat 7 并收到了 404 消息。默认情况下不附带管理器包和文档。
sudo yum install tomcat6-webapps tomcat6-docs-webapp tomcat6-admin-webapps
Run Code Online (Sandbox Code Playgroud)