У меня возникла проблема при установке 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, и он установился правильно с первой попытки.
решение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
Надеюсь, это поможет другим людям, столкнувшимся с такой же проблемой.