← ALL NOTES

PHP 7 のまま動いているサイトの話

動いているから、まだ大丈夫。その判断が、一番あとで効いてくる。

PHP 7からPHP 8への更新を黒・赤・白で表現したグラフィック

最初の投稿日:2026-08-21

「PHP 7 のままなんですが、危ないですか」と聞かれることがある。

正直に答えると、今日いきなり乗っ取られるわけではない。昨日まで動いていたサイトは、明日も動く。だからこの話はややこしい。危険は、事故として来ない。じわじわ来る。

動いていることと、守られていることは違う

PHP 7.4 のセキュリティ修正は 2022年11月28日に終わっている。8.0 も 8.1 も、もう同じところへ行った。

終わったのは新機能の開発ではない。見つかった穴を塞ぐ人がいなくなった、ということだ。だから昨日と今日で危険度は変わらないが、来年の今日とは確実に変わっている。時間が経つほど、開いたままの穴が増えていく。

放置されたプラグインも同じ理屈で積み上がる。更新が止まったプラグインは、脆弱性が見つかっても直らない。そこに手を入れる人が、もういない。

ボタン一つでは終わらない

7 から 8 は、単なる数字の繰り上がりではない。言語の前提が変わっている。

// PHP 7 では true、PHP 8 では false
var_dump(0 == "foo");

たったこれだけの違いが、条件分岐を静かに裏返す。エラーも出ない。ただ、意図と逆に動く。 古いコードほど、こういう「なんとなく動いていた書き方」に支えられている。

だから作業は、上げる前から始まる。動いているコードを読んで、8 で意味が変わる箇所を先に潰す。止まったプラグインは、代わりを探すか、外す判断をする。WordPress の外に置かれた古い PHP ファイル──問い合わせフォームの名残、昔の一枚ページ──も、同じように動かなくなる。忘れられているものほど、忘れられたまま壊れる。

戻れる場所を作ってから進む

バックアップを取る。可能ならステージング環境を作って、そこで先に上げてみる。壊れるなら、本番ではない場所で壊れてほしい。

そして上げたあとが本番だ。表示されているから成功、ではない。エラーログを見る。管理画面の裏側、決済まわり、メール送信──画面に出ないところから壊れる。

神経を使う作業だ、と認めておく

この作業は地味で、派手な成果も出ない。それでも、順番を守った人だけが何も起こさずに終われる。慌てて上げた人が、白い画面の前で連絡してくる。

上げるなら、腰を据えて上げる。ついでに言えば、上げ先は今から 8.2 ではなく 8.3 以上にしておいたほうがいい。8.2 のセキュリティ修正は 2026年12月31日で終わる。WordPress 自身が推奨しているのも 8.3 以上だ。せっかく神経を使うなら、来年もう一度使わずに済むところまで行く。


WordPress をホストしている PHP のアップデートは、お任せください。

※ サーバーが PHP のアップデートに対応していない場合は、サーバー移管やプラン変更をご検討ください。


この記事は人間による下書きからAIのサポートを経て、最後に人間がチェックして投稿しております。