raspberry pi4 でGroupSessionをつかう！　「前編」

初心者の私が、ラズベリーパイとグループセッションをインストールした記録です。
この記事が参考になれば幸いです。

◎必要なもの

　raspberrypi4　：　モデルはご自由に。　私はお決まりの8GBモデルです。
　SDカード　　　：　速度早めで、８GBは最低限あったほうがよいかも。
　USBメモリ　　 ：　転送速度早めがいいですね。
　その他、電源、モニタ、マウス、キーボードは任意でお願いします。　モニタレスで
　インストール可能ですが、初心者向けとして説明は省きます。


◎OSインストール方法は割愛します。
　私が書くよりとても参考になる記事がたくさんあります。

◎まずはじめにjavaのインストールです。
```
```・以下のディレクトリに移動します。
　　# cd /usr/lib/jvm　　こちらのディレクトリに移動します。

　　　なければ作成してください。　　　作成方法は、# mkdir /usr/liv/jvm
```
   ・次に、javaのデータをダウンロード・解凍します。
　Groupsessionの推奨が少し前のバージョンだったので、こちらを選択しています。
```
　　# wget -c https://cdn.azul.com/zulu-embedded/bin/zulu11.43.100-ca-jdk11.0.9.1-linux_aarch64.tar.gz

　　・解凍します

　　# tar -zxvf zulu11.43.100-ca-jdk11.0.9.1-linux_aarch64.tar.gz
```

・ダウンロードしたjavaを使うように設定します。
```
   # update-alternatives --install /usr/bin/java java /usr/lib/jvm/zulu11.43.100-ca-jdk11.0.9.1-linux_aarch64/bin/java 100

   # update-alternatives --config java

　　・使用するjavaを番号で選択するよう促されたら、0でいいかな？　選択してください。
　　　その後、使用するjavaのバージョン確認です。
　　　# java -version

　　・以下のようなに出力されましたか？　私の場合、以下の出力になりました。

   root@raspberrypi:/usr/lib/jvm# java -version
   openjdk version "11.0.9.1" 2020-11-06 LTS
   OpenJDK Runtime Environment Zulu11.43+100-CA (build 11.0.9.1+1-LTS)
   OpenJDK 64-Bit Server VM Zulu11.43+100-CA (build 11.0.9.1+1-LTS, mixed     mode)
   root@raspberrypi:/usr/lib/jvm# 
```

◎javaのインストールを終えたら、環境変数を編集します。

```
   # ls -l /etc/alternatives/java

　　・私の環境下では以下の出力です。
   # ls -l /etc/alternatives/java
   lrwxrwxrwx 1 root root 64 11月  7  2020 /etc/alternatives/java -> /usr/lib/jvm/zulu11.43.100-ca-jdk11.0.9.1-linux_aarch64/bin/java
   root@raspberrypi:/usr/lib/jvm# 

　　・グループセッションのサイトにも解説がありますが、以下コマンドで反映させます。

# echo "JAVA_HOME=/usr/lib/jvm/zulu11.43.100-ca-jdk11.0.9.1-linux_aarch64/bin/java” >> /root/.bash_profile

　　※上記コマンドで「>」となったら、ctrl+dで抜けてください。
　　　正しい方法なのか不明ですが、私はそのように操作して作業を進めています。

   # echo "PATH=\$JAVA_HOME/bin:\$PATH" >> /root/.bash_profile
   # echo "export PATH" >> /root/.bash_profile

   # source /root/.bash_profile
```
　　・最後のコマンドで反映されますが、NGであれば以下の操作をしてください。
```
   # nano /root/.bash_profile

　　・正しくなっていれば以下の記述があると思いますが、なければ全て消してコピペして
　　　頂いても構いません。

   JAVA_HOME=/usr/lib/jvm/zulu11.43.100-ca-jdk11.0.9.1-linux_aarch64/bin/java
   PATH=$JAVA_HOME/bin:$PATH
   export PATH

　　・記述（コピペ）したのち、ctrl+oで上書き、ctrl+xでエディタから抜けます。
```

　　・この辺で一旦再起動させてください。

◎再起動後、次にtomcatのインストールです。
```
　・インストール先は# /opt/配下にします。
   # cd /
   # cd /opt/
   # wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.82/bin/apache-tomcat-9.0.82.tar.gz

　・上記コマンドでダウンロードした後、解凍します。
   # tar -zxvf apache-tomcat-9.0.82.tar.gz

   # ls
　　apache-tomcat-9.0.82.tar.gzとapache-tomcat-9.0.82が色違いで確認できると
　　思います。

　　・今後の設定段階でディレクトリ名が長いと面倒なので、名称変更します。
   # mv apache-tomcat-9.0.82 tomcat9
   #ls

　・この結果、apache-tomcat-9.0.82.tar.gzとtomcat9が色違いで確認できると思います。
```

◎tomcatを使えるよう環境変数を編集します。
 java同様、公式サイトにも記載されている通り、パスを修正してコマンドで行います。
 コマンドラインがおかしくなった場合、javaのところと同じくctrl+dで抜けてください。
```
   # echo "CATALINA_HOME=/opt/tomcat9” >> /root/.bash_profile; echo "PATH=\$CATALINA_HOME/bin:\$PATH" >> /root/.bash_profile
   # echo "PATH=\$CATALINA_HOME/bin:\$PATH" >> /root/.bash_profile
   # echo "export PATH" >> /root/.bash_profile
   # source /root/.bash_profile

  　・環境変数の編集が間違いないか確認するのであれば、以下のコマンド操作をします。
   # nano /root/.bash_profile

　　・以下記述を確認ください。

　　JAVA_HOME=/usr/lib/jvm/zulu11.43.100-ca-jdk11.0.9.1-linux_aarch64/bin/java
　　PATH=$JAVA_HOME/bin:$PATH
　　export PATH
   CATALINA_HOME=/opt/tomcat9
   PATH=$CATALINA_HOME/bin:$PATH
   export PATH

　　・このようになっていれば大丈夫です。駄目ならコピペしてください
```

◎windowsではありませんが、このらで再起動させてtomcatの起動確認と進みます。
　画面上で再起動、コマンドラインであれば# reboot　でOKです。
```
　　・ラズパイが起動しましたら、tomcatを起動させます
   
   # ./opt/tomcat9/bin/startup.sh

　　何かしらコマンドラインに表記されると思いますが、エラー的な記載が内容であれば
　　他マシンまたはラズパイ自身で「http://localhost:8080」にアクセスしてください。
```
　　間違いがなければapachr-tomcatの画面がでてきます。
　　私はtomcatの画面が出ないようにしているのでスクショはありませんが、イメージ図を添付します。
![Screenshot 2023-10-17 at 12-19-06 Apache Tomcat® - Welcome!.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3578597/b2a5b648-b888-80fd-5c6c-8f7a16daa86b.png)

◎tomcatの起動確認を終えたら、tomcatを一度止めて自動起動の設定を行います。

```
　　・以下のコマンドでtomcatを停止させます。

   # /opt/tomcat9/bin/shutdown.sh

　　・自動起動させるためのファイルを新規作成します。
   # nano /etc/systemd/system/tomcat9.service

　　・エディタが開くので、以下を記述します。

[Unit]
Description=Apache Tomcat9
After=network.target
#ConditionPathExists=/opt/tomcat9

[Service]
User=******　　←　ユーザ名は自身で作成したユーザ名です。
Group=******　←　こちらも同様です。
Type=oneshot

WorkingDirectory=/opt/tomcat9/bin

ExecStart=/opt/tomcat9/bin/startup.sh
ExecStop=/opt/tomcat9/bin/shutdown.sh
Restart=no
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
```
　　・上記作成後、ctrl+oで書込保存、ctrl+xで抜けてください。

　　・ユーザはOSインストール時に作成必須なので、ユーザ名は問題ないかと。
　　・グループ名ですが、私はユーザ名と同じで記述しても動作してくれましたが、本来の設定として正しいかどうかは不明です。

　　・ディレクトリのアクセス権限設定と、作成したファイルを有効化させるため、以下のコマンド操作を行います。
```
# chown ******:****** -R /opt/tomcat9    ←　*はユーザ名、グループ名です
# systemctl list-unit-files --type=service | grep ******   ←　*はユーザ名、グループ名です（私はユーザ名、グループ名同一なのです）
# systemctl enable tomcat9
```

◎上記を行ったあと、tomcatの各種確認を行います。
```
　　・このコマンドでtomcatが問題なく起動しますが、エラーがあれば各種記載内容を確認ください。
   # systemctl start tomcat9.service

　　・問題なければ
   # systemctl status tomcat9.service

　　・こんな感じかと
   root@raspberrypi:~# systemctl status tomcat9.service
   ● tomcat9.service - Apache Tomcat9
        Loaded: loaded (/etc/systemd/system/tomcat9.service; enabled; preset: enabled)
        Active: active (exited) since Tue 2023-10-17 08:53:09 JST; 3h 54min ago
       Process: 708 ExecStart=/opt/tomcat9/bin/startup.sh (code=exited, status=0/SUCCESS)
       Main PID: 708 (code=exited, status=0/SUCCESS)
         Tasks: 65 (limit: 8733)
           CPU: 3min 30.734s
        CGroup: /system.slice/tomcat9.service
                └─728 /usr/bin/java -Djava.util.logging.config.file=/opt/tomcat9/conf/logging.properties -Djava.util.logging.mana>

   10月 17 08:53:09 raspberrypi systemd[1]: Starting tomcat9.service - Apache Tomcat9...
   10月 17 08:53:09 raspberrypi startup.sh[708]: Tomcat started.
   10月 17 08:53:09 raspberrypi systemd[1]: Finished tomcat9.service - Apache Tomcat9.
   lines 1-13/13 (END)

　　・ctrl+zで抜けてください。
```


◎ここまで問題なければ、一度ラズパイを再起動させます。
　再起動後、何も操作しなくとも[「http://localhost:8080」（他マシンからはIP:8080）にブラウザからアクセスすることで、tomcatの起動画面が確認できると思います。
　ここまでできれば、一度コーヒーブレイクしてくださいね！

前編はここまでとします。

後編はGroupsessionのインストール、ポート番号なしで使えるようnginxのインストール、欲を出してssl対応化まで進めます。

素人のおじさんが趣味で行っています。

ぜひ続きもご覧いただき、感想等ください。

それではよろしくおねがいします。