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。しかし、うまくいきませんでした。

注記:同じ tomcat7 をローカルの Ubuntu 14.04 サーバーにインストールしましたが、最初の試みで正しくインストールされました。

答え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 を使用して開発する場合は問題ありません)。もう 1 つの方法は、起動スクリプトを読み取り、更新するディレクトリを調べ、それらの所有権を確認することです。Wasy ハックは、通常書き込みビットを持つグループ root にユーザー tomcat7 を追加することです。

答え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

これが同じ問題を抱えている他の人々の助けになることを願っています。

関連情報