2012-02-18 53 views
3

我正在嘗試將我的webapp從樹脂遷移到Tomcat7。有一件事讓我感到困惑的是,我不知道如何爲一個虛擬主機設置「默認」web應用程序?如何在沒有webapp的情況下設置tomcat虛擬主機?

也就是說,我的網站只有一個應用程序:"/",位於「/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,我看到的不是我的加載web應用程序,只有Tomcat的web應用(主機,經理,示例,文檔,ROOT ...)加載。當我打開我的網站時,它顯示了tomcat的默認屏幕(帶有損壞的圖像)。

的配置不工作......(我試過xmlBase,的appBase,...的docBase但都在invain)

好像一個解決方案是在/home/destiny/www/webapps/ROOT目錄命名爲「ROOT」的webapp,但我不不想要那個解決方案!我希望我的默認網絡應用程序在/ home/destiny/www。並且將不會安裝其他webapps(我不需要webapps dir)。

如何解決它(在樹脂中很容易實現)?謝謝。

回答

1

指向自己的目錄嘗試以下操作:

去tomcat的文件夾%path_to_tomcat%/conf/Catalina/localhost 如果你願意,還可以更改本地主機到主機,但如果你正在嘗試做的唯一的事情就是讓你的在'/'上的應用程序,然後localhost很好。

在先前定義的文件夾中創建一個名爲ROOT.xml的文件。在該文件中添加以下

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

還需要查看%path_to_tomcat%/ webapps /目錄,並刪除/移動/重命名是存在的,如果你不想在默認的Tomcat頁面,在那裏的根文件夾。

查看方法#2 @this link瞭解更多詳情。

2

這對我的作品在Tomcat的7:

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

它可能不是配置Tomcat的最佳方式,但它得到了迅速的webapp工作。

+0

感謝這個例子打破了我的虛擬主機工作沒有上下文標籤的頭...... – thedrs 2013-06-28 07:57:43

2

這是一個古老的線程,但我想分享我的經驗,因爲這出現在我的搜索結果。我的問題是升級舊的JSP應用程序,這些應用程序在包含使用cPanel的新服務器上的子目錄的文件結構中分解並進行簡單的tomcat 7安裝。子目錄中的文件無法在其他目錄中引用包含的文件。本質上Tomcat正在爲每個子目錄創建一個單獨的上下文,然後我在包含文件上發現了很多文件未找到的錯誤。

所以我做了什麼馬克建議有點改變。我的服務器是在每個虛擬主機的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> 
相關問題