我在 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]**
我嘗試了在互聯網上可以找到的所有解決方案,例如:
apt-get purge tomcat7
使用或卸載 tomcat7apt-get autoremove tomcat7
並再次安裝,但出現相同的錯誤。 :(嘗試
apt-get update
刪除tomcat7並再次安裝但失敗。.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
我希望這能幫助其他有相同問題的人。