在 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使用或卸載 tomcat7apt-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)進行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

我希望這能幫助其他有相同問題的人。

相關內容