Сбой установки 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]**
Я перепробовал все решения, которые мог найти в Интернете, например:
Удаление tomcat7 с помощью
apt-get purge tomcat7
или жеapt-get autoremove tomcat7
и снова установлен, но получил ту же ошибку.:(Пытался
apt-get update
, удалить tomcat7 и снова установлен, но не удалось.Установите путь 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 в корень группы, который обычно имеет биты записи.