いつもお世話になります。
今回、webアプリ公開のためにEC2をamazon linux 2OSでサーバー構築をしていました。
サーバー構築自体初めてだったので下記の記事を参考に作業を進めていました。
https://qiita.com/shimatter/items/441ac14a6890ba093a92
tomcatを起動するところまではうまくいったのですがtomcatの自動起動設定をしたらtomcatが起動しなくなりました。
エラーの原因を探ろうにもlinux系のOSでの操作は初めてだったので、エラーの特定の仕方もわからず苦戦しています。
tomcatが起動しなくなる原因としてはどのようなものが考えらえるでしょうか?
もしくは、linuxでのエラーの特定の仕方を教えていただけたら幸いです。
※2020/07/01 8:46追記
tomcat起動のコマンドとそれに対するメッセージです。
[root@ip-*--- ~]# systemctl start tomcat
Job for tomcat.service failed because the control process exited with error code. See "systemctl status tomcat.service" and "journalctl -xe" for details.
[root@ip-*--- ~]# ● tomcat.service - Apache Tomcat 9
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2020-06-30 23:44:57 UTC; 1h 29min ago
Process: 6534 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=203/EXEC)
Main PID: 6534 (code=exited, status=203/EXEC)
Jun 30 23:44:57 ip-172-31-21-33.ap-northeast-1.compute.internal systemd[1]: Starting Apache Tomcat 9...
Jun 30 23:44:57 ip-172-31-21-33.ap-northeast-1.compute.internal systemd[6534]: Failed at step EXEC spawning /opt/tomcat/bin/startup.sh: No such file or directory
Jun 30 23:44:57 ip-172-31-21-33.ap-northeast-1.compute.internal systemd[1]: tomcat.service: main process exited, code=exited, status=203/EXEC
Jun 30 23:44:57 ip-172-31-21-33.ap-northeast-1.compute.internal systemd[1]: Failed to start Apache Tomcat 9.
Jun 30 23:44:57 ip-172-31-21-33.ap-northeast-1.compute.internal systemd[1]: Unit tomcat.service entered failed state.
Jun 30 23:44:57 ip-172-31-21-33.ap-northeast-1.compute.internal systemd[1]: tomcat.service failed.
構築した環境、やったこと、起こったこと
・EC2インスタンスの作成
amazon Linux 2 AMIを選択
インスタンスタイプ:t2microを選択
インスタンスの詳細設定:ネットワーク(vpcデフォルト)、サブネット(アベイラビリティゾーンのデフォルト)、自動割り当てパブリック(サブネット設定を使用)
ストレージの追加:ボリュームタイプ(ルート)、デバイス(/dev/xvda)、サイズ(8GB)、ボリュームタイプ(汎用SSD(qp2))
セキュリティグループの設定
HTTP TCP 80 0.0.0.0/0 -
HTTP TCP 80 ::/0 -
カスタム TCP TCP 8080 0.0.0.0/0 -
SSH TCP 22 0.0.0.0/0 -
MYSQL/Aurora TCP 3306 0.0.0.0/0 -
MYSQL/Aurora TCP 3306 ::/0 -
HTTPS TCP 443 0.0.0.0/0 -
HTTPS TCP 443 ::/0
・TeraTermをインストール
・EC2に接続
・mysqlをインストール
・EC2をRDSに接続
・Apacheをインストール
・JDKインストール(java-1.8.0-openjdk java-1.8.0-openjdk-devel )
・tomcatユーザー作成
・tomcatのダウンロード(http://ftp.riken.jp/net/apache/tomcat/tomcat-9/v9.0.36/bin/apache-tomcat-9.0.36.tar.gz)
・tomcatを展開
・tomcatのシンボリックリンク作成
ln -s /opt/apache-tomcat-9.0.36 /opt/tomcat
・tomcatのログシンボリックリンク作成
ln -s /opt/apache-tomcat/logs /var/log/tomcat
chown -h tomcat:tomcat /var/log/tomcat
・firewall設定
firewall-cmd --list-services --zone=public --permanent
ssh dhcpv6-client
vi /etc/firewalld/services/tomcat.xml
以下のコードを追加
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Apache Tomcat 9</short>
<description>Apache Tomcat 9</description>
<port protocol="tcp" port="8080"/>
</service>
・設定を反映
firewall-cmd --add-service=tomcat --zone=public --permanent
firewall-cmd --reload
・SELinux無効化
vi /etc/selinux/config
This file controls the state of SELinux on the system.
SELINUX= can take one of these three values:
enforcing - SELinux security policy is enforced.
permissive - SELinux prints warnings instead of enforcing.
disabled - No SELinux policy is loaded.
SELINUX=disabled
SELINUXTYPE= can take one of three two values:
targeted - Targeted processes are protected,
minimum - Modification of targeted policy. Only selected processes are protected.
mls - Multi Level Security protection.
SELINUXTYPE=targeted
・再起動
reboot
・TomcatとApacheを起動
systemctl start httpd.service
systemctl start tomcat.service
起動確認
webアプリケーションマネージャーの設定
vi /opt/tomcat/conf/tomcat-users.xml
以下のコードを記述
<role rolename="manager-gui"/>
<user username="XXXX" password="XXXX" roles="manager-gui"/>
vi /opt/tomcat/webapps/manager/META-INF/context.xml
以下のコードを記述
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="\d+.\d+.\d+.\d+|::1|0:0:0:0:0:0:0:1" />
再起動し設定反映
systemctl restart tomcat
しかし、webアプリケーションマネージャーを開けない
・tomcat自動起動設定
新規ファイルでtomcatのサービスファイルを作成
vi /etc/systemd/system/tomcat.service
以下のコードを記述
[Unit]
Description=Apache Tomcat 9
After=network.target
[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/tomcat/tomcat.pid
RemainAfterExit=yes
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/opt/tomcat/bin/shutdown.sh ExecReStart=/opt/tomcat/bin/shutdown.sh;/opt/tomcat/bin/startup.sh
[Install]
WantedBy=multi-user.target
反映
systemctl daemon-reload
自動起動有効
systemctl enable tomcat
user,groupはtomcatに変更
chown -R tomcat:tomcat /opt/tomcat
自動起動の確認
reboot
tomcatの起動確認
systemctl status tomcat.service
● tomcat.service - Apache Tomcat 9
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Tue 2020-06-30 23:44:57 UTC; 9min ago
Process: 6534 ExecStart=/opt/tomcat/bin/startup.sh (code=exited, status=203/EXEC)
Main PID: 6534 (code=exited, status=203/EXEC)
Jun 30 23:44:57 ip-----33.ap-northeast-1.compute.internal systemd[1]: S...
Jun 30 23:44:57 ip-----33.ap-northeast-1.compute.internal systemd[6534]: ...
Jun 30 23:44:57 ip-----33.ap-northeast-1.compute.internal systemd[1]: t...
Jun 30 23:44:57 ip-----33.ap-northeast-1.compute.internal systemd[1]: F...
Jun 30 23:44:57 ip-----33.ap-northeast-1.compute.internal systemd[1]: U...
Jun 30 23:44:57 ip-----33.ap-northeast-1.compute.internal systemd[1]: t...
Hint: Some lines were ellipsized, use -l to show in full.
自動起動ができていない
systemctl start tomcat
Job for tomcat.service failed because the control process exited with error code. See "systemctl status tomcat.service" and "journalctl -xe" for details.
普通の起動もできなくなった
回答1件
あなたの回答
tips
プレビュー