この Blog は私が契約している VPS で動作しているが、それを重い腰を上げてようやく Ubuntu 20.04 から 24.04 にアップグレードした。 それで PHP バージョンが 7.4 から 8.3 に上がるということで Laravel のバージョンも上げなきゃ、そして Bootstrap も 4 から 5 に移行しなきゃということで結局全体的に一つ一つ見ながらコードを入れ替えた。 これが結構大変だ。 仕事でやっている時もそうだが、プログラムというのは書いたら終わりではなくフレームワークや言語、環境のアップデートがあった場合にちゃんと追従していかないとすぐ陳腐化してしまう。 特に PHP などはリリースされてから 3 年ほどで EOL になってしまうので 1 年経ったぐらいでもう一通り見直していかないと 3, 4 年経った段階で見直すと EOL になっていたり全体的に全然変わっていたりと修正が厳しくなってしまう。 以下今回ハマったこと、気になったことをつらつらと書いていこうと思う:

Laravel Mix から Vite への移行

以前はアセット・コンパイラとして Laravel Mix だったのだが最近の Laravel は Vite になっている。 なのでここは完全に書き換えたのだが、これの移行はそんなに難しくはなかった。 書き方が変わっているのでそこを調べて書き換えればよい。 npm run dev して開発してデプロイする時は npm build するような雰囲気でよい。 ただデプロイする時に本番向けビルドして DEBUG=false にしているはずなのに本番向けの CSS/JS が適用されなくて困った。 調べたらこれは /public/hot というファイルも間違えてデプロイしてしまっていたのが原因だった。 このファイルがあるとホットデプロイされていると Laravel が認識してしまって本番用のリソースが適用されなくなっていた。

ConoHa VPS の仕様変更

ConoHa を使用しているのだが、新しい VPS を契約してサーバ立ち上げて SSH の設定をしても何故か外部から接続できずにハマった。 これがどうも最近になってセキュリティグループの設定が必要になったようで公式にも書いてあった

認証周り

以前は Laravel の組み込みの認証の仕組みをそのまま使用していたが、最近のものは Laravel Sanctum だとか Laravel Jetstream だとかやたらと大仰な認証パッケージがついており、これを導入しようとするといろいろ余計なクラスが追加されてしまってあまり好ましくない。 この Blog はただ単に認証とログイン・ログアウトができればいいだけなので最低限で良い。 ということで普通に自作する形で対処した。 これらの認証フレームワークを使わなければならないのかと思ってちょっと構えていたが、そんなこともなかった。 自作しているといってもちゃんと認証には Laravel の Auth クラスを使用しているので問題ないはず。

脱 Homestead

以前の Laravel は Homestead といういわゆる Vagrant のラッパーを使用していた。 これが便利だったのだが最近は Laravel Sail を使う形 (要は Docker) になっているらしい。 これも認証と同じでそんな面倒なことしなくても普通に Django みたいに開発サーバだけでも良いのに、と思って Laravel の開発サーバを使ってみた。 php artisan serve で開発用の Web サーバが立ち上がり、別のウインドウで npm run dev しておけば CSS/JS は都度ホットデプロイされながら開発できる。 これで開発中に全然不足は感じなかったので、この程度の規模の開発であればこれで良いのだろう。