📝

Webサーバーについて知識ゼロの人がさくらVPSを使用してJavaWebアプリ環境を整えた

に公開

前提知識

  • Javaで作成したWebアプリケーションを.warファイルで作成できる
  • Tomcatのディレクトリ構造が理解できていて、/Tomcatルートディレクトリ/webappsに.warファイルを配置してTomcat起動すると.warファイルが展開できることを理解していること
  • さくらVPSでパケットフィルタのカスタム設定でTCP 8080を開けれること

さくらVPSの状態は以下でスタート(ただ、レンタルしただけの状態)

本来は、Apache(Webサーバー)を導入するのが推奨されているようですが、今回は使用するほどの規模ではないため、Tomcat(アプリケーションサーバー)のみとします。

推奨図(?)

【完成図】

CentOSでの話で手順を下記に記載

Javaをインストール

sudo dnf install -y java-21-openjdk

Tomcatをダウンロード

ダウンロード場所は/opt配下とします。

sudo curl -O http://ftp.riken.jp/net/apache/tomcat/tomcat-10/v10.1.39/bin/apache-tomcat-10.1.39.tar.gz

tarをインストール

sudo dnf install -y tar

ダウンロードしたtomcatを解凍

sudo tar -zxvf apache-tomcat-10.1.39.tar.gz

firewalldを起動してステータス確認

sudo systemctl start firewalld
sudo systemctl status firewalld

firewalldの設定

/etc/systemc/system/tomcat.serviceファイルを以下の内容で作成する
Tomcatのユニットファイルを作成します。このファイルは、LinuxのSystemdというサービスを管理する機能を利用していて、プログラムを自動起動させたりするのに必要になります。

tomcat.service
[Unit]
Description=Apache Tomcat 9
After=network.target

[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/apache-tomcat-9.0.37/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    

tomcatのポート番号を/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>

ファイルの権限変更

作成したtomcat.serviceの権限変更をします。

sudo chmod 755 /etc/systemd/system/tomcat.service

Tomcatを有効化

sudo systemctl enable tomcat

Tomcatの通信を許可する

sudo firewalld-cmd --add-service=tomcat --zone=public --permanent

Tomcatを起動する

実行権限がないので、実行権限を付与してから起動する

sudo chmod +x /opt/tomcat/bin 
sudo /opt/tomcat/bin/startup.sh

さくらvpsのIPアドレス:8080にアクセスしてtomcatのテストページが開ければTomcatの導入はばっちしです。

.warファイルを展開する

/opt/tomcat/webappに.warファイルを配置してTomcatを再起動する

sudo /opt/tomcat/bin/shutdown.sh
sudo /opt/tomcat/bin/startup.sh

さくらvpsのIPアドレス:8080/開発時にアクセスしたURLにアクセスして、想定ページが開ければ、JavaWebアプリ環境の作成完了です。

Discussion