LoginSignup
0
0

AL2023学習メモ③ Tomcat9.0.82導入

Posted at

前置き

学習メモをまとめています。
私と同じ初心者さんの助けになれば幸いです。

この記事でわかること

1. Tomcat9.0.82のインストール方法
2. ログの確認

2024年1月17日現在の情報です。
今後のアップデートで、インストール方法が変更される可能性があります。

事前環境

  • EC2
    • AL2023(以下、過去投稿したインストール方法の記事を貼っておきます)

1.インストール方法

AL2023のTomcatインストールする方法は少しだけ大変です。
私は15分ほどかかりました。
一応、Apacheとかと同じ方法で出来なくもないです。
しかし、セキュリティやエラーの観点から余りお勧めできません。
そのため、今回は公式からTomcatのアーカイブをダウンロードします。
誤作動を起こすかもなので、必ず一行ずつ実行してください。

#tomcat専用ユーザーを作成する。
#セキュリティの観点から、rootユーザーでtomcatを起動するのは危ないため
$sudo useradd -r -s /sbin/nologin tomcat

# アカウントの確認
id tomcat
# 実行結果 tomcatグループのtomcatユーザーがちゃんとあるよって言ってる
uid=992(tomcat) gid=992(tomcat) groups=992(tomcat)

# アカウントの確認2 ログインは出来ないユーザーだよって言ってる
grep tomcat /etc/passwd
# 実行結果
tomcat:x:992:992::/home/tomcat:/sbin/nologin
#ホームディレクトリ移動
$cd

#公式からアーカイブをダウンロード
#sudo wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.82/bin/apache-tomcat-9.0.82.tar.gz 

#ダウンロードしたパッケージを展開し、一覧で表示する
$sudo tar -zxvf apache-tomcat-9.0.82.tar.gz 

tarコマンドはアーカイブを圧縮、展開するコマンドです。
-zxvfオプションについては、以下の記事が参考になります。

#ダウンロードしたapache-tomcat-9.0.82ファイルを、/usr/local/srcディレクトリに移動する
$sudo mv apache-tomcat-9.0.82 /usr/local/src/

#シンボリックリンクを作成する(ショートカットみたいなもの)
$sudo ln -s /usr/local/src/apache-tomcat-9.0.82/ /usr/local/src/tomcat

#先ほど作成したtomcatユーザーに、/apache-tomcat-9.0.82、/tomcatの権限を付与
$sudo chown -R tomcat:tomcat /usr/local/src/apache-tomcat-9.0.82
$sudo chown -R tomcat:tomcat /usr/local/src/tomcat

#権限が変更されたか確認 → 必須ではない
$cd /usr/local/src
$ls -l
#実行結果(下記のような表示があれば成功)
drwxr-xr-x. 9 tomcat tomcat 16384  1月 11 02:37 apache-tomcat-9.0.82
lrwxrwxrwx. 1 tomcat tomcat    36  1月 11 02:31 tomcat -> /usr/local/src/apache-tomcat-9.0.82/

ここまで来たら、あと少しです。
次は、いよいよユニットファイルの作成を行います。
ユニットファイルとは、サービスの設定ファイルだと考えて頂ければ。

#ユニットファイルをtomcat.serviceと言う名前で、"/etc/systemd/system/"に作成し、エディタ起動
$sudo vi /etc/systemd/system/tomcat.service

#以下をエディタに記述
#(「I」でインサートモード、「Esc」でインサート終了、「:w」で保存、「:q」)

[Unit]
Description=Tomcat Web Server
After=network.target

[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="CATALINA_BASE=/usr/local/src/tomcat"
Environment="CATALINA_HOME=/usr/local/src/tomcat"
Environment="CATALINA_PID=/usr/local/src/tomcat/temp/tomcat.pid"
ExecStart=/usr/local/src/tomcat/bin/startup.sh
ExecStop=/usr/local/src/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target
#ユニットファイルの読み込み(systemdに変更を反映させる)
#daemon=デーモンとは、常駐プログラムのこと。
$sudo systemctl daemon-reload

#ユニットファイルの有効化(自動起動設定を有効にする)
$sudo systemctl enable tomcat.service

さて、最後にbash_profileを編集します。

# エディタで .bash_profile ファイル開く
$sudo vi ~/.bash_profile

# エディタに以下の行を最終行に追加する
("#"がつくと、コメントアウトされてしまうため、下記のままコピー)
export CATALINA_HOME=/usr/local/src/tomcat

# bash_profileシェルを実行する
$source ~/.bash_profile

それでは、tomcatを起動しましょう

#tomcatの自動起動、有効化
$sudo systemctl enable tomcat.service

#tomcatを起動
$sudo systemctl start tomcat.service

#tomcatの状態確認
$sudo systemctl status tomcat.service
#実行結果
 tomcat.service - Tomcat Web Server
     Loaded: loaded (/etc/systemd/system/tomcat.service; enabled; preset: disabled)
     Active: active (running) since Wed 2024-01-17 19:45:26 JST; 4min 42s ago

起動を確認できたので、接続確認テストページを表示してみましょう

#接続確認
$curl -s http://localhost:8080 | grep title
#実行結果
<title>Apache Tomcat/9.0.82</title>

テストページの表示方法
URL:http://[EC2パブリックIPv4 アドレス]:8080で、以下が表示されたら成功です。
お疲れ様でした。

image.png

2. ログの確認

tomcatのログは、標準で
"/usr/local/src/apache-tomcat-9.0.82/logs" ディレクトリ配下に格納されています。

#ログファイルはrootユーザーで確認できるので、ユーザー切り替え
$sudo su
#ディレクトリ移動
$de /usr/local/src/apache-tomcat-9.0.82/logs

#一覧表示
$ls
#表示結果(一部省略)
catalina.2024-01-11.log   host-manager.2024-01-12.log  localhost.2024-01-14.log             
manager.2024-01-11.log  localhost_access_log.2024-01-15.txt  catalina.out
ログ 内容
catalina.日付.log 日付のtomcatのログ
catalina.out 起動してから今までのtomcatのログ
host-manager.日付.log GUI管理ツールのログ
manager.日付.log GUI管理ツールのログ
localhost.日付.log Webアプリケーションのログ
localhost_access_log.日付.text tomcatのアクセスログ

後書き

以上がTomcatをインストールしてから、実行するまでの手順です。
こうやって記事を書いてみると、やること多いですね。
セキュリティ面を気にするなら更にやることが多いらしいので、根気強く頑張りたいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0