運用しているサーバーのPHPを7.4→8.3へバージョンアップしてみたお話

当サイトも2004年の開設から20年過ぎました。
その間にPHPのバージョンも5→8へ上がりました。

最近までPHP7.4を使用しており、このほどようやくPHP8.3へバージョンを上げました。
ですが一筋縄ではいかなかったことがいくつかありましたので、忘備録として記録いたします。

PHP8.3にバージョンを上げられなかった理由

PHP8.3へ上げれば、速度が速くなるなどパフォーマンス面でメリットがあることは知っていました。
でもなかなか上げることができませんでした。

それは以下の理由によります。

  • 独自CMSのバージョンアップが必要
  • ワードプレスのテーマのバージョンアップが必要
  • RSSプログラムの調整が必要

なんだそんなことか。
という感じですが、事態は思ったより深刻でした。

試しに何もバージョンアップせずにPHP8.3にしてみたところ・・・・、

・お知らせは表示されない。
・ワードプレスは致命的エラー。
・RSSは取得できない。

と非常に困った状態になりました。

PHP8.3にバージョンアップするためには、これら3つのことを同時に対応しなければいけません。
ということで、しばらく放置せざるを得ない状態でした。

それでもバージョンを上げようと思った理由

ひとえに、パフォーマンスの改善です。
以前から、本ブログが重たい現象が発生していました。
要因はいろいろとありますが、PHP8.3にすることで改善が期待できるためです。

それに、PHP8.3へバージョンを上げることは、今後の役に立つとも思いました。
ということで、以下の手順でバージョンを上げました。

  1. PHP8.3のテスト環境で現状のサイトを複製する
  2. エラーになる部分を解消する
  3. 実機に修正分をアップする
  4. 実機のPHPバージョンを8.3に上げる

まずはテスト環境をおこす

対応箇所が多いと、実機で1個ずつ直すのはあまりよくありません。
正しく表示されない期間が長引くためです。
更新は迅速に。それが鉄則です。

ですが、修正作業にはそれなりに時間がかかります。
ということで、サイトをローカル環境で複製し、1個ずつ修正します。
これならば、実機に影響が出ません。

全部修正したところで、一気にUPすればよいのです。

早速PHP8.3にバージョンを上げたxamppが役に立ちます。

エラーになる部分を解消する

テスト環境を起こすことができたら、今度はPHP8.3でエラーになる部分を修正してゆきます。

独自CMSのアップデート

独自CMSは、すでにPHP8.3に対応したバージョンがあったので、差し替えて完了です。

ワードプレスのアップデート

次に本ブログのワードプレスをPHP8.3で動くようにします。

ワードプレス自体は、PHP8.3に対応しているので、何も問題ないと思っていたら、「致命的なエラー」が発生しました。

エラーメッセージを調べてみると、どうやらプラグインの「Crayon Syntax Highlighter」がPHP8.3に対応していないため、あちこちでエラーが発生していました。

これは、後継プラグインである「Urvanov Syntax Highlighter」をインストールすることで解消できました。
旧Crayon Syntax Highlighterを無効化しエラーが出なくなりました。

ですがワードプレスのエラーはそれだけではありませんでした。
ブログに使用しているテーマが古く、PHP8.3に対応していませんでした。

さっそくテーマの配布元サイトから、最新バージョンをダウンロードしました。
しかし、ここで問題がありました。

テーマに、スタイルシートや、RSSなど様々な改修を入れており、これらが消えてしまうと、なかなか復元が大変です。

さすがにそれは嫌だなと思いました。
バージョンアップに踏み切れなかった理由もそこにあります。

ですが、本ブログで使用していたテーマは、ローカル改修と、本体が分離しており、本体だけのアップデートで対応できました。

思ったより簡単にアップデートできて助かりました。

RSS読み取りのラップデート

本サイトのトップページに、本ブログの記事一覧をMagpieRSSを表示して使用しています。
ですが、更新がすでに停止しており、PHP8.3に対応していません。

MagpieRSSはPHPで動作するRSS取得ツールですが、代替も良さそうなのがありません。
ということで、修正することにしました。

細かなことは割愛しますが、キャッシュの根本的な部分等が、PHP8.3に対応しておらず、修正が大変でした。
思わぬところでつまづきました。

実機に修正部分をアップする

PHP8.3のテスト環境で動作することを確認したら、実機にアップしました。
その際に、PHP7.4のままでUPし、ちゃんと動作するかを確認します。

PHP8.3に対応すれば、PHP7.4でも動作します。
この段階でエラーになるならば、すぐに戻し、再修正です。

幸い特に問題もなくPHP7.4で動作してくれました。

実機PHPのバージョンを8.3へ上げる

最後に、サーバーの管理画面からPHPのバージョンを7.4→8.3へ上げました。
一番最初は大惨事だったので、緊張しながらもバージョンを上げます。

確認してみると、ちゃんと動作していました。
これでバージョンアップ作業は完了です。

とはいえ、PHP8.3へバージョンアップするのは、想像以上に修正箇所が多い印象でした。
ワードプレスでさえ、本体は大丈夫でも、プラグインやテーマが古いと、手動で何とかしなくてはいけません。
思ったより骨の折れる作業でした。

ただ、今後PHP8.3への対応が増えると考えられます。
自社サイトでバージョンアップの練習ができたと思えば、良い経験ができました。

今回のレポートは以上です。
読んでいただいてありがとうございました。


ホームページに関するお悩み事やご相談事がございましたら私どもまでご連絡ください。 鋭意ご対応申し上げます。
ホームページのご提案もさせていただいております