Установка Tomcat7 через apt-get в Ubuntu 14.04 не удалась

Установка 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, и он установился правильно с первой попытки.

решение1

Мне удалось решить эту проблему, установив пакет libtomcat7-Java. Похоже, это отсутствующая зависимость.

sudo apt-get install libtomcat7-java 

решение2

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

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

решение3

Я также попробовал установку через бинарный метод (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"]

решение4

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

sudo apt-get purge tomcat8-common

Надеюсь, это поможет другим людям, столкнувшимся с такой же проблемой.

Связанный контент