CentOSにTomcatをインストールしたい。
サービスを自動起動するようにしたい。
どうやって設定するのか手順を教えて欲しい!
こういった疑問にこたえます。
CentOS7にTomcat9をインストールした時の備忘録です。
参考になれば幸いです。
CentOS7にTomcat9をインストールする方法
Tomcat用ユーザの作成
# useradd -s /sbin/nologin tomcat
ファイルダウンロード・解凍
まずホームディレクトリに移動しておきます。
# cd ~
tomcatの公式ページからバージョンを指定してダウンロードできます。
ダウンロードするファイルのパスをコピーしてwgetコマンドでダウンロードします。
# wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.54/bin/apache-tomcat-9.0.54.tar.gz
ファイルを展開します。
# tar -xzvf ~/apache-tomcat-9.0.54.tar.gz
展開したファイルをホームディレクトリから任意のディレクトリに移動します。
今回は/opt
に配置しました。
# mv ~/apache-tomcat-9.0.54 /opt/
所有者をtomcatに変更します。
# chown -R tomcat:tomcat /opt/apache-tomcat-9.0.54/
サービスの作成・登録
tomcatのサービスを作成します。CentOS7ではsystemdでサービスを管理します。
/etc/systemd/system/tomcat.service
ファイルを作成します。
# vim /etc/systemd/system/tomcat.service
tomcat.serviceの中身はこんなかんじ。
[Unit]
Description=Apache Tomcat 9
After=network.target
[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/apache-tomcat-9.0.54/tomcat.pid
RemainAfterExit=yes
ExecStart=/opt/apache-tomcat-9.0.54/bin/startup.sh
ExecStop=/opt/apache-tomcat-9.0.54/bin/shutdown.sh
ExecReStart=/opt/apache-tomcat-9.0.54/bin/shutdown.sh;/opt/apache-tomcat-9.0.54/bin/startup.sh
[Install]
WantedBy=multi-user.target
作成できたら権限を変更します。
# chmod 755 /etc/systemd/system/tomcat.service
systemctlコマンドでサービスを有効にします。
# systemctl enable tomcat
Created symlink from /etc/systemd/system/multi-user.target.wants/tomcat.service to /etc/systemd/system/tomcat.service.
サービスの起動と停止
systemctl startでサービスを起動します。
# systemctl start tomcat
systemctl statusコマンドでActive: active (exited) となっていればOK!
# systemctl status tomcat
停止するときは以下のコマンドを実行します。
# systemctl stop tomcat
firewallの設定
firewallが無効になっていればブラウザから8080ポートを指定して接続すればTomcatのwelcomeページが表示されますが、有効の場合が多くアクセスできない場合がほとんどです。
ここではfirewallの設定を行います。
/etc/firewalld/services/
にtomcat.xmlファイルを作成します。
# vim /etc/firewalld/services/tomcat.xml
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が通信を許可しているサービスはこちらのコマンドで確認できます。
次の例はdhcpv6-clientとhttp、sshが許可されていることがわかります。
# firewall-cmd --list-services --zone=public --permanent
dhcpv6-client http ssh
tomcatの通信を許可するために以下のコマンドを実行します。
# firewall-cmd --add-service=tomcat --zone=public --permanent
変更した内容を反映させます。
# firewall-cmd --reload
もう一度、許可している通信を確認するとtomcatが追加されていることがわかります。
# firewall-cmd --list-services --zone=public --permanent
dhcpv6-client http ssh tomcat
これでfirewallの設定も完了です。
ブラウザから8080ポートを指定してアクセスしてみましょう。
こんなページが表示されたらOKです。
お疲れ様でした。
コメント