#前提
筆者自身よくわからないまま2日粘ってやっと動いただけのレベル。難しい。
レンタルサーバーでphpを動かせる程度のLinuxとvimの操作ができる。
さくらでVPSの契約は完了している。
さくらのwebコンソールでCentOS7をインストール済み
apacheをインストール済み
ここまでがまだの場合、
ネコでもわかる!さくらのVPS講座 ~第二回「サーバーをさわってみよう!
を読んでその通りにする。ここまでは簡単。
そのあとは主に
Apache Tomcat 9 を CentOS 7 にインストールする手順
を参考に進めていく
ここでは筆者が詰まったことしか追記しないので上記できなかった場合のみ戻ってきてください。
#大きくやること(依存関係があるので上から順番にやらないと失敗するかも)
Javaをインストール
TomCatをインストール
ターミナルからfirewallを設定
さくらのコンソールからポートを解放する。
#java
jdkをインストールする。
(上位互換性はないので自分が使いたいフレームワークの対応バージョンにする。新しければOKというわけではない。)
yum install するだけ。
#TomCat
まず何らかの形でサーバーにダウンロードする。(これもjavaのバージョンに合わせたものを選ぶ。新しければいいというものではない。)
ググると人によって色々なやり方を教えてくれるが色々あるので知らないとかえって迷う。
サーバーにログインしてcurl か wget コマンド使うか、一旦ローカルでGUIのブラウザからダウンロードしてftpとかでサーバーにコピーするか、などのやり方がある。
どれもやっていることは同じなので自分が分かる方法をコピペしてバージョンのところだけ書き換えると行ける。
バージョンについてはtomcatの公式ページで現在使える番号を確認して打ち替える。
ダウンロードできたら所定のディレクトリに移動して解凍する。
これも色々なやり方が書かれているが
/opt/ 以下ならどこでも良さそう?
/opt/tomcat か
/opt/apache-8.0.5-tomcat-M24/ みたいなディレクトリで書かれている記事があった。
※このあと登場する設定ファイルでここで決めたパス名に書き換える必要があるのでTomCatを起動できなかったらここでインストールしたパスなどを確認する。
サービスを登録する。(ここは筆者自身めちゃくちゃあやふやです。ちゃんと知りたい人は他の人のもみてください。)
良く分からないが、とにかくこれを正しく作って起動に成功させないとTomCatが立ち上がりません。
めちゃくちゃハマったので参考ページのコピペのコツを書きます。
/etc/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat 9
After=network.target
[Service]
User=tomcat
Group=tomcat
Type=oneshot
PIDFile=/opt/apache-tomcat-9.0.0.M21/tomcat.pid
RemainAfterExit=yes
ExecStart=/opt/apache-tomcat-9.0.0.M21/bin/startup.sh
ExecStop=/opt/apache-tomcat-9.0.0.M21/bin/shutdown.sh
ExecReStart=/opt/apache-tomcat-9.0.0.M21/bin/shutdown.sh;/opt/apache-tomcat-9.0.0.M21/bin/startup.sh
[Install]
WantedBy=multi-user.target
結論としては
/opt/apache-tomcat-9.0.0.M21/
の部分をさっきtomcatを解凍したディレクトリの名前に合わせます。
ダウンロードしたバージョン名を変えるだけとは限らないので注意してください。
私はそれでハマりました。
私の場合は /opt/tomcat/bin/startup.sh とかになっていましたので。
自分がどういう名前にしたか、cd /opt/ で ls して確認します。
ここを間違うと あとで確認コマンド打った時にエラーまみれになります。
あとはchmod して systemctl enable tomcatしたあと
systemctl start tomcat する。
上のコードの意味を一部ですがこのページが解説してくれています。↓
systemdの*.serviceファイルの書き方
このページを読むまで何の設定か意味不明だったのですが、どうもスタートアップに登録したアプリの起動する順番AfterやBeforeで指定して、Exec〜 の行で指定したスクリプトファイルを起動するってのが主な機能みたいです。(.shはシェルスクリプトね)
JavaとかPHPでいうところのAntとかGradeleとかMarvenとか、そういう系だと思います。(たぶん)
#firewalldの設定
このページの一番上らへんに記載の参考ページのコードを丸ごとコピーしてコマンドを丸ごとコピーすれば動くので割愛。
あえて書くと、tomcat.xmlにバージョン名があるけどタグはただの説明(printとかecho命令みたいなもの)なので適当にバージョン名を分かるように書き換えるだけでOK
#さくらのコンソールからポートを解放する。
これは何故か解説してくれているサイトが見当たらないのですが、さくらVPSの場合、デフォルトでWEBのコンソールからポートを制限されているので、停止するか必要なポートだけ解放しないと8080ポートに接続できません。
コンソールのアドレスはさくらのVPSに加入した時にメールで来ているのでそこのリンクから入ってください。
#動作確認
正しく設定できたら、サーバーに管理者で入って
/opt/tomcat/webapps/
以下に好きなフォルダを作ると、それがプロジェクトルートになります。
tomcatの動作確認テスト用にexamplesというアプリが初めから入っているので(なかったら適当に作ってindex.html作って)
ブラウザで
xxx.xxx.xx.xx:8080/example
と打ち込んでください(xは自分がもらったipアドレスに書き換えて)
サンプルが表示されたら成功です。
また
xxx.xxx.xx.xx:8080
とだけ打つとTomCatのデフォルトページが出るはずです。
試しにManager Appボタン押したら弾かれました。
管理画面に入るためにはまた設定がいるようです。
大変・・