私はubuntu 16.04にTomcat 8をインストールしようとしています。これは私がフォローしているガイドです:
https://www.digitalocean.com/community/tutorials/how-to-install-Apache-Tomcat-8-on-ubuntu-16-04
基本的な考え方は、Tomcatを実行する権限が制限された「Tomcat」という名前の追加ユーザーを作成することです。最後のコマンドを実行してサービスとして開始しようとすると(rootとして試行):
Sudo systemctl start Tomcat
次のエラーが発生します。
制御プロセスがエラーコードで終了したため、Tomcat.serviceのジョブが失敗しました。詳細については、「systemctl status Tomcat.service」および「journalctl -xe」を参照してください。
Systemctlステータスの確認:
Tomcat.service - Apache Tomcat Web Application Container
Loaded: loaded (/etc/systemd/system/Tomcat.service; disabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code)
Process: 14 ExecStart=/opt/Tomcat/bin/startup.sh (code=exited, status=203/EXEC)
systemd[1]: Starting Apache Tomcat Web Application Container...
systemd[1]: Tomcat.service: Control process exited, code=exited status=203
systemd[1]: Failed to start Apache Tomcat Web Application Container.
systemd[1]: Tomcat.service: Unit entered failed state.
systemd[1]: Tomcat.service: Failed with result 'exit-code'.
これはTomcat.serviceファイルです:
# /etc/systemd/system/Tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=network.target
[Service]
Type=forking
Environment=Java_HOME=/usr/lib/jvm/Java-1.8.0-openjdk-AMD64
Environment=CATALINA_PID=/opt/Tomcat/temp/Tomcat.pid
Environment=CATALINA_HOME=/opt/Tomcat
Environment=CATALINA_BASE=/opt/Tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='Java_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/Tomcat/bin/startup.sh
ExecStop=/opt/Tomcat/bin/shutdown.sh
User=Tomcat
Group=Tomcat
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target
/ Tomcat/binフォルダーへのアクセス権は次のとおりです。
-rwxr-x--- 1 root root 1902 Jul 6 08:44 shutdown.sh
-rwxr-x--- 1 root root 1904 Jul 6 08:44 startup.sh
...
他のユーザーが同じ問題を報告しており、「Tomcat」ユーザーに「Tomcat」フォルダー全体の所有権を与えることをお勧めします。しかし、それは記事の精神(セキュリティを向上させるためにアクセスを制限する)と矛盾するようです。
パーミッションに関するこの記事の意味が欠けているかどうかわかりません。
ありがとう
これまでに行ったことをすべて削除するだけです。次に:
Sudo apt-get install Tomcat8
Sudo service Tomcat8 start
同じ問題がありました。私の場合、私はJava 11.を使用しています。問題は、この新しいJavaバージョンのJREフォルダが含まれていないことです。/jreをJava_HOMEのパスとそれは動作するはずです。
また、このチュートリアルのすべての手順を実行したので、他に大きな問題を起こすことなくTomcatを実行できました。
実行する必要があります
cd /opt/Tomcat/bin && Sudo chmod +x catalina.sh
Tomcatは、startup.shからcatalina.shを起動する必要があります
記事に従って、あなたと同じエラーが発生しました。
後:
chgrp -R Tomcat bin chmod g+rwx bin chmod g+r bin/*
それは私のために働いた。
/ opt/Tomcat内のすべてのファイル/フォルダーを変更する必要はありません(起動、シャットダウン、およびこれら2つによって呼び出されるもののみです。そのため、binフォルダー全体を使用しました)。
ところで、apt-get install Tomcat8
機能するTomcat8サーバーを取得するには:)(これにより、IDが1000未満のTomcat8ユーザー/グループが作成されます)。
Centos 7.4では、すべてのパスを試しましたが、解決策が見つかりません。やっと直接Tomcatを起動しました。
chmod +x /opt/Tomcat/bin/*.sh
ln -s /opt/Tomcat/bin/startup.sh /usr/bin/tomcatstart
ln -s /opt/Tomcat/bin/shutdown.sh /usr/bin/tomcatshutdown
tomcatstart
これらの実行可能ファイルを/ usr/binにリンクすると、どこからでも起動できます。コード「tomcatstart」を/ etc/environmentに配置すると、Tomcatが起動時に起動します。私の現在の環境ファイルは:
export Java_HOME=/opt/jdk1.8.0_144
export JRE_HOME=/opt/jdk1.8.0_144/jre
export PATH=$PATH:/opt/jdk1.8.0_144/bin:/opt/jdk1.8.0_144/jre/bin
tomcatstart