如何在没有webapps的情况下设置tomcat虚拟主机?

如何在没有webapps的情况下设置tomcat虚拟主机?,tomcat,tomcat7,virtualhost,Tomcat,Tomcat7,Virtualhost,我正在尝试将我的webapp从resin迁移到Tomcat7。让我困惑的一件事是,我不知道如何为一个虚拟主机设置一个“默认”webapp 也就是说,我的网站只有一个应用程序:“/”,位于“/home/destiny/www”。里面有许多PHP脚本(由apache提供服务),里面有一个WEB-INF目录,还有一个标准的JavaEE应用程序我的应用程序未打包在WAR中,它是默认扩展的 我试图找到有关如何在Tomcat7中设置虚拟主机的文档,但所有示例都需要一个“webapps”目录,以便WARs进行

我正在尝试将我的webapp从resin迁移到Tomcat7。让我困惑的一件事是,我不知道如何为一个虚拟主机设置一个“默认”webapp

也就是说,我的网站只有一个应用程序:
“/”
,位于“
/home/destiny/www
”。里面有许多PHP脚本(由apache提供服务),里面有一个WEB-INF目录,还有一个标准的JavaEE应用程序<代码>我的应用程序未打包在WAR中,它是默认扩展的

我试图找到有关如何在Tomcat7中设置虚拟主机的文档,但所有示例都需要一个“webapps”目录,以便WARs进行扩展,但我的情况并非如此

以下是我的server.xml设置(tomcat 7.0.23):


... 
当我启动tomcat时,我看到我的webapp没有加载,只有tomcat的webapp(主机管理器、管理器、示例、文档、根…)加载。当我打开我的站点时,它会显示tomcat的默认屏幕(带有损坏的图像)

配置不工作。。。(我试过xmlBase、appBase、docBase……但都是Inain)

似乎有一个解决方案是
/home/destiny/www/webapps/ROOT
目录中名为“
ROOT
”的webapp,但我不想要那个解决方案!我希望我的默认web应用程序位于/home/destiny/www。而且不会安装其他webapps(我不需要
webapps
dir)


如何解决它(在树脂中很容易实现)?谢谢。

要指向您自己的目录,请尝试以下操作:

转到tomcat文件夹
%path\u至\u tomcat%/conf/Catalina/localhost
如果愿意,您也可以将localhost更改为您的主机,但如果您唯一要做的就是将应用程序置于“/”上,那么localhost就可以了

在先前定义的文件夹中创建名为
ROOT.xml
的文件。在该文件中添加以下内容

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="/home/destiny/www">
</Context>

如果您不希望默认的tomcat页面位于%path\u to\u tomcat%/webapps/,请查看该路径,并删除/移动/重命名该路径下的根文件夹


有关更多详细信息,请参阅方法#2。

这在Tomcat 7中对我很有用:

<Host name="myhost.com" appBase="">
  <Context path="/" docBase="/home/destiny/www"/>
</Host>


这可能不是配置Tomcat的最佳方式,但它可以让webapp快速工作

这是一个古老的主题,但我想分享我的经验,因为我的搜索结果中出现了这个主题。我的问题是升级旧的JSP应用程序,这些应用程序在使用cPanel和简单的Tomcat7安装的新服务器上以包含子目录的文件结构出现。子目录中的文件无法引用其他目录中包含的文件。本质上,Tomcat为每个子目录创建了一个单独的上下文,然后我在include上发现了很多文件未找到的错误

所以我按照马克的建议做了一些改变。我的服务器设置为每个虚拟主机的web文档根目录设置为/home/domainuser/public_html,默认的tomcat server.xml将appbase和context docbase都设置为该目录

因此,最终的工作是“拆分”目录路径,并将部分作为appbase,然后将我的上下文的docbase作为public_html目录。请参见下面的示例

    <Host name="domain.com" appBase="/home/domainuser/" unpackWARs="false" deployXML="false">
      <Alias>www.domain.com</Alias>
      <Context path="" reloadable="true" docBase="public_html" debug="1"/>
   </Host>

www.domain.com

感谢这个让虚拟主机在没有上下文标记的情况下正常工作的示例…@Mark Horgan,有没有办法将webapps中的manager文件夹自动包含在每个虚拟主机中
    <Host name="domain.com" appBase="/home/domainuser/" unpackWARs="false" deployXML="false">
      <Alias>www.domain.com</Alias>
      <Context path="" reloadable="true" docBase="public_html" debug="1"/>
   </Host>