Сбой установки Tomcat7 через apt-get в Ubuntu 14.04

У меня проблема при установке Tomcat7 в Ubuntu 14.04. JDK уже установлен в моей системе (версия 1.7), но когда я использую apt-get install tomcat7 Я получаю ошибку ниже:

Setting up tomcat7-common (7.0.52-1ubuntu0.1) ...
Setting up tomcat7 (7.0.52-1ubuntu0.1) ...

Creating config file /etc/default/tomcat7 with new version
Adding system user `tomcat7' (UID 108) ...
Adding new user `tomcat7' (UID 108) with group `tomcat7' ...
Not creating home directory `/usr/share/tomcat7'.

Creating config file /etc/logrotate.d/tomcat7 with new version
 * Starting Tomcat servlet engine tomcat7                                **[fail]**

Я перепробовал все решения, которые мог найти в Интернете, например:

  1. Удаление tomcat7 с помощью apt-get purge tomcat7 или же apt-get autoremove tomcat7 и снова установлен, но получил ту же ошибку.:(

  2. Пытался apt-get update, удалить tomcat7 и снова установлен, но не удалось.

  3. Установите путь CATALINA в .bashrc или же /etc/environment, Но не повезло.

Примечание: я установил тот же tomcat7 на свой локальный сервер Ubuntu 14.04, и он был установлен правильно с первой попытки.

4 ответа

Я смог решить эту проблему, установив пакет libtomcat7-Java. Это кажется отсутствующей зависимостью.

sudo apt-get install libtomcat7-java 

У меня была та же проблема с tomcat8, и я смог решить проблему, удалив tomcat8-common:

sudo apt-get purge tomcat8-common

Я надеюсь, что это поможет другим людям, которые имеют ту же проблему.

Я также попробовал установку через бинарный метод (tgz). После этого tomcat сервис работает нормально и http://My_Ip:8080 также работает, но при проверке /var/log/tomcat/ регистрирует его, показывая некоторую ошибку,

 at
 org.apache.catalina.core.ContainerBase$StopChild.call(ContainerBase.java:1564)
 at java.util.concurrent.FutureTask.run(FutureTask.java:262) at
 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at
 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:745)

 Dec 08, 2014 10:12:47 AM org.apache.coyote.AbstractProtocol stop INFO:
 Stopping ProtocolHandler ["http-bio-8080"] Dec 08, 2014 10:12:47 AM
 org.apache.coyote.AbstractProtocol destroy INFO: Destroying
 ProtocolHandler ["http-bio-8080"]

Я понимаю эту проблему. Это вызвано (а) разделением частей Tomcat на разные места FS (/etc, /var, /usr/lib, /usr/share и т. Д.) (B) присвоением неправильного владельца (= разрешения), например, журналам и временному каталогу. Тогда пользователь tomcat7 просто не может даже написать свою жалобу при запуске.

Простое решение - установить tgz с tomcat.apache.org (и запустить его вручную; хорошо, если вы разрабатываете с tc). Другой - просто прочитать скрипт запуска, узнать, какие каталоги нужно обновить, проверить их право собственности. Хитрый взлом состоит в том, чтобы добавить пользователя tomcat7 в корень группы, который обычно имеет биты записи.

Другие вопросы по тегам