在 Ubuntu 14.04 上通过 apt-get 安装 Tomcat7 失败

在 Ubuntu 14.04 上通过 apt-get 安装 Tomcat7 失败

我在 Ubuntu 14.04 中安装 Tomcat7 时遇到问题。我的系统上已经安装了 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. apt-get purge tomcat7使用或卸载了 tomcat7 apt-get autoremove tomcat7,然后再次安装,但出现相同的错误。:(

  2. 尝试过apt-get update删除 tomcat7 并再次安装但失败了。

  3. .bashrc在或中设置 CATALINA 路径/etc/environment。但是没有运气。

笔记:我已经在本地 Ubuntu 14.04 服务器上安装了相同的 tomcat7,并且第一次尝试就正确安装。

答案1

我通过安装 libtomcat7-Java 包解决了这个问题。这似乎是缺少的依赖项。

sudo apt-get install libtomcat7-java 

答案2

我理解这个问题。这是由于 (a) 将 Tomcat 各部分拆分到不同的 FS 位置(/etc、/var、/usr/lib、/usr/share 等)(b) 为日志和临时目录等分配了错误的所有权(=权限)。然后用户 tomcat7 甚至无法在启动时写入其投诉。

简单的解决方案是从 tomcat.apache.org 安装 tgz(并手动启动它;如果您使用 tc 进行开发,那么没问题)。另一种方法是阅读启动脚本,了解要更新哪些目录,检查它们的所有权。Wasy hack 是将用户 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

我希望这能够帮助其他遇到同样问题的人。

相关内容