我刚在Ubuntu 14.04虚拟机上安装了Tomcat 8,但无法从浏览器访问http://[hostname]:8080/manager/html
的管理应用程序。一旦我点击它就会出现“403 Access Denied”错误。我将Tomcat作为服务在/etc/init.d/tomcat8-dev
的配置文件中定义。错误消息表明Tomcat最初设置为仅能从本地主机访问,但它是托管的虚拟机,无法在其上运行浏览器。
由于有多个人推荐,我在tomcat-users.xml
文件中设置了一个用户。然而,我没有收到提示提供该用户的凭据,并且在默认页面上找不到任何类型的登录按钮。该文件当前看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<user username="(redacted)" password="(redacted)"
roles="manager-gui,manager-jmx,manager-status,manager-script"/>
</tomcat-users>
阅读了Tomcat文档页面 这里 后,我尝试向 context.xml
中添加类似以下内容的<Valve />
标签: <Context privileged="true" antiResourceLocking="false"
docBase="${catalina.home}/webapps/manager">
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1" />
<!--Another valve for my local machine's IP-->
</Context>
然而,一旦我设置了privileged="true"
,无论我之后提供什么阀门,当我用浏览器连接到服务器时,都会得到一个空白页。每当我做出更改时,我会使用
sudo service tomcat8-dev restart
重新启动我的服务。基于我在这里和其他网站上阅读的帖子,我尝试了其他几件事情:
- 为我的Tomcat用户添加各种角色配置 - 在
<Connector />
标签内的server.xml
中添加address="0.0.0.0"
- 使用initctl
而不是基于此处的说明设置服务,由于某种原因,这不会在我的服务器上加载默认页面
- 尝试不同的浏览器,并禁用弹出窗口拦截器我尝试的所有方法都没有奏效。如果您想了解我情况的更多细节,请告诉我。有任何建议吗?
编辑:问题在于我正在编辑错误的
context.xml
文件。正确的文件位于tomcat/webapps/manager/META-INF
中。 我错误地对tomcat/conf/context.xml
进行更改。