2012-02-18 2 views
3

Я пытаюсь перенести мой webapp из смолы в Tomcat7. Меня смущает одна вещь: я не знаю, как настроить «default» webapp для одного виртуального хоста?Как настроить виртуальный хост tomcat без webapps?

То есть на моем сайте есть только одно приложение: "/", расположенное в «/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 (7.0.23) Tomcat:

<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> 

Когда я начинаю кота, я вижу, мой WebApp не загружен, WebApps только для Tomcat (хост-менеджер, менеджер, примеры, документы , ROOT ...). Когда я открываю свой сайт, он показывает экран по умолчанию tomcat (со сломанными изображениями).

Конфигурация не работает ... (я пытался xmlBase, appBase, docBase ... но все в invain)

Кажется, одним из решений является веб-приложение под названием «ROOT» в /home/destiny/www/webapps/ROOT каталоге, но я не Не хочу этого решения! Я хочу, чтобы мое веб-приложение по умолчанию в/home/destiny/www. и не будет никаких других webapps, установленных (мне не нужен файл webapps).

Как его решить (этого легко достичь в смоле)? Благодарю.

ответ

1

Чтобы указать свой собственный каталог, попробуйте следующее:

перейти в папку TOMCAT %path_to_tomcat%/conf/Catalina/localhost Вы также можете изменить локального хоста на хост, если вы хотите, но если единственное, что вы пытаетесь сделать, это получить app на '/', тогда локальный хост прекрасен.

создать файл с именем ROOT.xml в ранее определенной папке. В этом файле добавьте следующие

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

Также смотрите в% path_to_tomcat%/WebApps/и удалить/переместить/переименовать папку ROOT, которая там есть, если вы не хотите, страница по умолчанию кот, чтобы быть там.

Для получения более подробной информации см. Подход № 2 @this link.

2

Это работает для меня в Tomcat 7:

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

Это, вероятно, не самый лучший способ настроить Tomcat, но он получает веб-приложение работает быстро.

+0

спасибо, например, сломал голову, чтобы виртуальные хосты работали без контекстной метки ... – thedrs

2

Это своего рода старая тема, но я хотел поделиться своим опытом, так как это произошло в моих результатах поиска. Моя проблема заключалась в обновлении старых JSP-приложений, которые были взорваны в файловой структуре, содержащей подкаталоги на новом сервере, использующем cPanel и простой установщик tomcat 7. Файлы в подкаталогах не могли ссылаться на включенные файлы в других каталогах. По сути, Tomcat создавал отдельный контекст для каждого подкаталога, тогда я получал много файлов, которые не были найдены.

Так что я сделал то, что предложил Марк с небольшим изменением.Мой сервер был настроен с каждым корнем веб-документа каждого виртуального хоста, установленным в/home/domainuser/public_html, а файл tomcat server.xml по умолчанию устанавливал для этой директории как базу приложений, так и контекстную docbase.

Так что, в конечном итоге, это было «разбить» путь к каталогу и поместить его в качестве приложения, а затем в 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> 
Смежные вопросы