Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t访问Tomcat 8管理器应用程序_Tomcat_Tomcat8 - Fatal编程技术网

Can';t访问Tomcat 8管理器应用程序

Can';t访问Tomcat 8管理器应用程序,tomcat,tomcat8,Tomcat,Tomcat8,我刚刚在Ubuntu14.04虚拟机上安装了Tomcat 8,无法从浏览器访问位于http://[hostname]:8080/Manager/html的Manager应用程序。我一点击它就会出现“403拒绝访问”错误。我将Tomcat作为一个服务运行,该服务在/etc/init.d/tomcat8 dev的配置文件中定义。错误消息表明Tomcat最初设置为只能从localhost访问,但由于它是一个托管的VM,我无法在其上运行浏览器 我已经按照一些人的建议在tomcat users.xml文件

我刚刚在Ubuntu14.04虚拟机上安装了Tomcat 8,无法从浏览器访问位于
http://[hostname]:8080/Manager/html
的Manager应用程序。我一点击它就会出现“403拒绝访问”错误。我将Tomcat作为一个服务运行,该服务在
/etc/init.d/tomcat8 dev
的配置文件中定义。错误消息表明Tomcat最初设置为只能从localhost访问,但由于它是一个托管的VM,我无法在其上运行浏览器

我已经按照一些人的建议在
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>
<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服务tomcat8 dev restart
重新启动我的服务

根据我在这里和其他网站上读到的帖子,我尝试了其他事情:

  • 我的tomcat用户的各种角色配置
  • address=“0.0.0.0”
    添加到
    server.xml
    内的
    标记中
  • 使用
    initctl
    而不是根据说明设置服务,因为某些原因,它不会在我的服务器上加载默认页面
  • 尝试不同的浏览器,并禁用我的弹出窗口阻止程序
我试过的都不管用。如果你想了解我的情况,请告诉我。有什么建议吗

编辑:问题是我编辑了错误的
context.xml
文件。正确的文件位于
tomcat/webapps/manager/META-INF
中。我错误地更改了
tomcat/conf/context.xml

您应该更改:

docBase="${catalina.home}/webapps/manager"
致:


这是因为您不使用从上游分发的Tomcat,而是使用Ubuntu附带的Tomcat。

AFAIK Tomcat在默认配置中阻止除localhost之外的所有主机访问Manager应用程序(Manager/html)

要能够使用访问manager GUI,请在manager应用程序的配置文件server.xml和context.xml中配置:

步骤1:在[tomcat install dir]/conf/server.xml中编辑连接器元素并添加您的IP以及useIPVHosts=“true”,即:


address=“0.0.0.0”
可能不是您要在此处插入的内容,因为它将manager GUI公开给网络上的所有计算机

步骤2:在[tomcat安装目录]/webapps/manager/META-INF/context.xml中,编辑阀元件并添加IP:


privileged:设置为true以允许此上下文使用容器 servlet,比如managerservlet

反资源锁定:如果为真,Tomcat将阻止任何文件锁定。这将显著影响应用程序的启动时间, 但允许在平台或服务器上进行完整的webapp热部署和取消部署 可能发生文件锁定的配置

请注意,我没有像您在尝试过的事情列表中提到的那样添加其他阀元件,而是编辑现有的阀元件,只添加我的IP(192.168.0.9)

步骤3:重新启动Tomcat,您应该能够使用localhost/127.0.0.1以及主机名/IP访问manager GUI


注 关于tomcat-users.xml,声明如下:

建议永远不要授予manager脚本或manager jmx 具有manager gui角色的用户的角色

因此,您可能希望在tomcat-users.xml中引入两个用户,即:


我想这可能对你们所有人都有帮助,因为这对我来说很有用

这里我使用的是Apache tomcat 8:

root@akash-LIFEBOOK-A555:/opt/apache-tomcat-8.5.20/bin# ./version.sh 
Using CATALINA_BASE:   /opt/apache-tomcat-8.5.20
Using CATALINA_HOME:   /opt/apache-tomcat-8.5.20
Using CATALINA_TMPDIR: /opt/apache-tomcat-8.5.20/temp
Using JRE_HOME:        /DATA/jre1.8.0_131/
Using CLASSPATH:       /opt/apache-tomcat-8.5.20/bin/bootstrap.jar:/opt/apache-tomcat-8.5.20/bin/tomcat-juli.jar
Server version: Apache Tomcat/8.5.20
Server built:   Aug 2 2017 21:35:49 UTC
Server number:  8.5.20.0
OS Name:        Linux
OS Version:     4.4.0-98-generic
Architecture:   amd64
JVM Version:    1.8.0_131-b11
JVM Vendor:     Oracle Corporation
编辑tomcat-user.xml并添加角色和用户

<role rolename="manager-gui"/>
<role rolename="manager-status"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="admin-gui"/>
<user username="admin" password="password" roles="manager-gui,manager-status,manager-script,manager-jmx,admin-gui"/>

我也收到了同样的问题,我首先在config/tomcat-users.xml中添加了角色user和passowrd,然后在webapps/manager/META-INF/context.xml中允许我的公共ip
最初,为使用同一台机器的管理器添加了本地ip 127。如果您想在所有机器上访问manager应用程序,只需添加您的ip即可。转到{Tomcat_install_DIR}/webapps/manager/META-INF/并编辑context.xml


更新“apache-tomcat-8.5.5\webapps\manager\META-INF\context.xlm”文件。取消对值标记的注释。然后重新启动服务器

context.xml文件

Before : 

<Context antiResourceLocking="false" privileged="true">
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
     allow="192\.168\.0\.9|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>

After change :

<Context antiResourceLocking="false" privileged="true" >
</Context>

for auto deployment: go to 'apache-tomcat-8.5.5\conf\context.xml' and add antiResourceLocking="true" in 'Context' tag
之前:
变更后:
对于自动部署:转到“apache-tomcat-8.5.5\conf\context.xml”并在“context”标记中添加antiresourcelock=“true”

对于我来说,除了在tomcat-users.xml中放置具有管理员角色的管理员用户,我还必须在/webapps下修改manager和host manager应用程序的2/META-INF/context.xml文件,如下所示: 127->\d+
因此,任何外部PC都可以通过浏览器访问其管理器站点

谢谢您的帮助!结果是我编辑了错误的context.xml文件。我将细节编辑到原始问题中。@ecliptica很高兴听到它现在适合您-不客气。@ronan Quillevere我在tomcat9+java9上也面临同样的问题,正如建议中所说的。还添加了webapps/manager/META-INF/context.xml中提到的更改,但没有起作用。请建议我使用Tomcat9进行了回答中建议的更改,但仍然无法从任何浏览器运行Manager应用程序,@GouthamNithyananda也体验到了用流浪主机的IP地址替换主机名。要更改哪个文件?听起来你解决了这个问题。。。我们能把它变成答案中的一组步骤吗?
Before : 

<Context antiResourceLocking="false" privileged="true">
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
     allow="192\.168\.0\.9|127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>

After change :

<Context antiResourceLocking="false" privileged="true" >
</Context>

for auto deployment: go to 'apache-tomcat-8.5.5\conf\context.xml' and add antiResourceLocking="true" in 'Context' tag