首页 文章

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

提问于
浏览
3

我正在尝试将我的webapp从树脂迁移到Tomcat7 . 有一点让我感到困惑的是,我不知道如何为一个虚拟主机设置“默认”webapp?

也就是说,我的网站只有一个应用程序: "/" ,位于“ /home/destiny/www ” . 里面有许多PHP脚本(由apache提供),里面有一个WEB-INF目录,带有标准的JavaEE应用程序 . My app is not packaged in WAR , it is default expanded .

我尝试找到有关如何在tomcat 7中设置虚拟主机的文档,但是所有示例都需要一个'webapps'目录来扩展WAR,但这不是我的情况!

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

<Host name="myhost.com" xmlBase="/home/destiny/www" 
  unpackWARS="false" autoDeploy="true">
  <Context path="/" docBase="." />
</Host>

<!-- default tomcat's host -->
<Host name="localhost"  appBase="webapps"
  unpackWARs="true" autoDeploy="true"> ... </Host>

当我启动tomcat时,我看到我的webapp没有加载,只加载了tomcat的webapps(host-manager,manager,examples,docs,ROOT ...) . 当我打开我的网站时,它会显示tomcat的默认屏幕(图像已损坏) .

配置不起作用...(我尝试过xmlBase,appBase,docBase ......但是都在调用)

似乎一个解决方案是在 /home/destiny/www/webapps/ROOT 目录中名为' ROOT '的webapp,但我没有安装其他webapps(我不需要 webapps 目录) .

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

3 回答

  • 2

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

    转到tomcat文件夹 %path_to_tomcat%/conf/Catalina/localhost 如果需要,您也可以将localhost更改为您的主机,但如果您要做的唯一事情是在'/'上获取您的应用程序,那么localhost就可以了 .

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

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

    另请查看%path_to_tomcat%/ webapps /,如果您不希望默认的tomcat页面存在,请删除/移动/重命名那里的ROOT文件夹 .

    有关详细信息,请参阅方法#2 @ this link .

  • 2

    这在Tomcat 7中适用于我:

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

    它可能不是配置Tomcat的最佳方式,但它可以让webapp快速运行 .

  • 2

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

    所以我做了Mark建议的一点改变 . 设置了我的服务器,每个虚拟主机的Web文档根设置为/ home / domainuser / public_html,默认的tomcat server.xml将appbase和上下文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>
    

相关问题