2026年10月、PHPに重大な脆弱性が見つかりました(解説記事)。PHP 8.1以前には公式の修正版が出ないため、レンタルサーバーの管理画面でPHPのバージョンを上げるサイトが増えています。ところが、上げた直後に「このサイトで重大なエラーが発生しました」と表示される、画面が真っ白になる、といったトラブルがよく起きます。
原因の多くは、古いプラグインやテーマ、WordPress本体が新しいPHPに対応していないことです。上から順に切り分ければ、自分で直せるケースも少なくありません。
⚠️ ファイルを書き換える前に、必ずバックアップを取ってください(バックアップと復元の手順)。また、エラーを避けるために古いPHP(8.1以前)へ戻した状態は、今回の脆弱性に対して無防備なままです。戻すのは原因を調べるあいだだけにしてください。
まず確認:今どの状態ですか
- 表示は崩れたが
/wp-adminには入れる → 手順3(プラグイン・テーマ)と手順4(WordPress本体)の更新が早道 - 「重大なエラー」で
/wp-adminにも入れない → 手順1(いったん戻す)→ 手順2(ログで特定) - 管理者あてに「サイトで技術的な問題が発生しています」というメールが届いた → メール内のリンクから「復旧モード」に入れる(重大なエラーの対処ガイド)
- 真っ白で何も表示されない → 手順2でエラーログを確認(真っ白になるときの切り分けも参照)
- ページの上に「Deprecated」「Warning」という英文が出ている → 止まる種類のエラーではありません(よくある質問を参照)
なぜPHPを上げると壊れるのか
PHPは新しいバージョンで古い書き方を「非推奨(Deprecated)」にし、その後のバージョンで削除します。削除された書き方が残っているプラグインやテーマは、PHPを上げた瞬間に致命的エラーで止まります。WordPressで特に止まりやすいのは、7.4から8.0以上へ上げるときです。
| 上げ方 | 起きやすいこと | 典型的な原因 |
|---|---|---|
| 7.4 → 8.0以上 | 致命的エラーで止まる | 8.0で削除された create_function() や each() を呼ぶ古いプラグイン、波かっこで文字列の1文字を取り出す古い書き方が残るテーマ |
| 8.0 → 8.1以上 | 動作は続くが、非推奨の警告が大量に出る | 組み込み関数に null を渡す古いコード(8.1で非推奨) |
| 8.1 → 8.2以上 | 動作は続くが、非推奨の警告が出る | クラスに宣言していないプロパティを後から足す古いコード(8.2で非推奨) |
もうひとつ見落としやすいのが、WordPress本体の版です。WordPress公式の互換表では、新しいPHPを使うには、次の版以上のWordPressが必要です。
| 使いたいPHP | 必要なWordPressの版 |
|---|---|
| 8.2 | 6.1以上 |
| 8.3 | 6.4以上 |
| 8.4 | 6.7以上 |
| 8.5 | 6.9以上 |
WordPress本体の更新を長く止めているサイトは、プラグインより先に本体が引っかかります。
対処手順
手順1 いったん元のPHPバージョンに戻すかを決める
レンタルサーバーの管理画面で、切り替える前のPHPバージョンに戻すと、多くの場合はすぐに表示が戻ります。ただし、戻す先によって扱いが変わります。
- 8.2以上に戻す場合:修正版(8.2.35 / 8.3.36 など)が適用されていれば、しばらく使っても大丈夫です。落ち着いて手順2以降を進めます
- 8.1以前に戻す場合:PHP公式の修正版はありません。サーバー会社が独自の修正を当てているかを確認し、戻すのは原因を調べるあいだだけにします
手順2 エラーログで原因を特定する
wp-config.php の「編集が必要なのはここまでです」と書かれた行の上に次の3行を追記すると、エラーの内容が wp-content/debug.log に記録されます。
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true ); // wp-content/debug.log に記録する
define( 'WP_DEBUG_DISPLAY', false ); // 画面には表示しない
ログは、エラーが出ている状態でサイトを開いたときに記録されます。手順1で元に戻した場合は、ステージング(テスト環境)の機能があればそちらで新しいPHPに切り替えて開くのが安全です。ない場合は、アクセスの少ない時間帯に一度だけ切り替えてサイトを開き、ログを取ってから戻します。
PHPのバージョンが原因のときは、たとえば次のような行が見つかります。
PHP Fatal error: Uncaught Error: Call to undefined function create_function()
in /home/.../wp-content/plugins/old-slider/old-slider.php:45
PHP Fatal error: Array and string offset access syntax with curly braces is no longer supported
in /home/.../wp-content/themes/old-theme/functions.php on line 120
PHP Deprecated: Creation of dynamic property Old_Widget::$title is deprecated
in /home/.../wp-content/plugins/old-widget/class-old-widget.php on line 33
Fatal error の行に含まれる plugins/ や themes/ のフォルダ名が、サイトを止めている原因です。Deprecated の行は警告で、サイトが止まる原因ではありません。
⚠️ 原因が分かったら、
WP_DEBUGは必ずfalseに戻してください。trueのまま公開し続けると、サーバー内のパスなどが外部に漏れるおそれがあります。
手順3 原因のプラグイン・テーマを更新する、または入れ替える
- 管理画面に入れる場合:「プラグイン」「外観 → テーマ」から最新版に更新します
- 管理画面に入れない場合:FTPやファイルマネージャで、原因のフォルダ名を変えて無効化します(やり方は重大なエラーの対処ガイドの手順3・4)
- 更新が来ていない場合:WordPress.orgのプラグインのページで「最終更新」を確認します。何年も更新されていないプラグインは、PHPを上げるたびに同じことが起きるため、更新が続いている代わりのプラグインへ移るのが安全です
手順4 WordPress本体を新しくする
前の表のとおり、WordPress本体が古いと新しいPHPに対応していません。「ダッシュボード → 更新」から最新版に更新します。本体の更新前にもバックアップを取ってください。
手順5 もう一度PHPを上げて確認する
次の順で進めると、同じトラブルを繰り返しにくくなります。
- バックアップを取る(ファイルとデータベースの両方)
- WordPress本体・テーマ・プラグインを最新にする
- ステージングがあれば、先にそちらでPHPを切り替えて確認する
- 本番のPHPを切り替える
- すぐに次の「直ったか確認する」を行う
どのバージョンに上げればいいか
- WordPress公式が推奨しているのは PHP 8.3以上 です
- PHP 8.2は 2026年12月31日でサポートが終わります。いま8.2に上げると、2か月後にまた同じ作業が必要になります
- レンタルサーバーで選べる範囲で、プラグインが対応していれば 8.3以上 を選んでください(8.3のセキュリティサポートは2027年12月31日まで、8.4は2028年12月31日まで)
直ったか確認する
- トップページ、よく見られているページ、
/wp-adminへのログイン - 問い合わせフォームの送信(メールが届くところまで)
debug.logに新しいFatal errorが出ていないか- 手順2で追記した
WP_DEBUGをfalseに戻したか - 無効化のために名前を変えたフォルダを、元に戻したか(または削除したか)
よくある質問
画面の上に「Deprecated」「Warning」と英文が表示されます
致命的なエラーではなく、「この書き方は将来使えなくなる」という警告です。ただ、訪問者に見せるものではありません。wp-config.php の WP_DEBUG が true のままなら false に戻します。それでも表示される場合は、レンタルサーバーのPHP設定で display_errors を Off にします。根本的には、警告を出しているプラグイン・テーマを更新してください。
古いPHPのまま使い続けてはいけませんか?
PHP 8.1以前には、PHP公式のセキュリティ修正が出ません。2026年10月の脆弱性のように、ログインなしで外部から乗っ取られうる問題が見つかっても、直す版が出ないということです。サーバー会社の独自対応は一時的な措置と考え、計画的に上げてください。
この作業を何度も繰り返したくありません
PHPやWordPressの更新に追われる構成そのものを見直す方法もあります。ページの配信にPHPを使わない静的な構成なら、PHPの脆弱性やバージョンアップの影響を受けません(AI Web Platform)。
自分で直せない・時間がありません
「お客様に見せている最中」など一刻を争う場面では、無理に操作せずご相談ください。当社では最短即日での復旧をサポートしています。