PHP8が1台完成

曇り昨日は木曜日だけど祝日なので、スマホの平日のアラームを解除していたのだが、セットし直すのを忘れてて今朝はアラーム鳴らず。 起きたら10時だった…… 朝はマックに行って読書をしようと思っていたのだけど、できなくなってしまった。 今週は祝日が2日もあったのもあり、読書は0分、借りた本はまだ1ページも読めていない。

仕事ではステージングと呼ばれる検証用サーバーみたいなものをリプレースしていた。 2017年くらいに作ったAmazon Linuxのサーバーで、PHPのバージョンが7.1.33。 Amazon Linux2で作り直して、最新の8.0.10をインストールして、Gitリポジトリからデプロイするものや、それを本番サーバーに反映する部分を作った。 ある程度検証終わってから、現状のステージングのEIPを解除して、このサーバーに付け替えるだけで、DNSとかいじらずに差し替えができたので素晴らしい。
さっきまで動いていたステージングは、とりあえずインスタンスを停止状態にして、ディスクボリュームはスナップショットを取っておいた。 来週くらいにインスタンスとボリュームを削除してしまおう。

検証用は手軽にできるが、本番サーバーはなかなか手軽にはできないが、本番サーバーもやらないといけないんだよな。 プログラムのソースコード自体はPHP8対応してない部分がけっこうあるので、Warningエラーが出まくり。 だけど、それでも普通に動作するので、移転してからエラーを消していけばいいかな。 しばらくはエラーログが悲惨なことになりそうだが……
PHP7.4を使う考えはもう無しにした。 今更7.4を入れるのは手間の割にリターンが少ない、手間をかけて8にしたほうが絶対に良い。

ステージングが半日くらいでできたので、本番は本気でやれば1日あれば出来そうな気もする。 こちらはEIPとか関係なく、ロードバランサのターゲットグループでやるだけなので、もう少し簡単かな。
別にPHP7とPHP8が共存してもいいので、今は本番2台だけど、PHP7×2とPHP8×1の3台でしばらくやってみて、後にPHP7を廃止して、PHP8×2にしてもいいかなと考えたり。 このあたりはやってみながらという感じで。

手順をZennにまとめていたけど、まとめるほど手順がなかった……
本当は本番もDockerでやったほうがいいのかもしれないけど、自分のローカルの開発環境でしかDocker使ってないので、本番でやるのは知識が不足している。 とりあえず今回はDockerは無しで。 そもそもDockerが入るのかも調べてないのでわからない。