メインコンテンツに移動

PHPのバージョンアップでWordPressが動かなくなる原因と対処法

PHPのバージョンアップでWordPressが動かなくなる原因と対処法

「PHPのバージョンを上げたら、サイトが真っ白になった」

「『このサイトで重大なエラーが発生しました』と表示されて、管理画面にも入れない」

2026年10月に公表されたPHPの緊急の脆弱性をきっかけに、古いPHPから新しいPHPへ切り替えた方も多いと思います。

PHPの開発チームから修正版が出るのはサポート中の版だけなので、8.1以前を使っていたサイトでは、切り替えが避けられません。ところが、切り替えた途端にWordPressが動かなくなる、というのはよくあるトラブルです。

この記事では、PHPのバージョンアップでWordPressが動かなくなる原因と、動かなくなったときの対処法、そしてそうならないための事前の準備を、図解と動画で解説します。

この記事の要点

  • 動かなくなる原因の多くは、WordPress本体ではなく、更新されていない古いプラグインやテーマ
  • 動かなくなったら、まず慌てずに元のPHPの版に戻してサイトを復旧させる
  • 原因は、リカバリーモードのメールやエラーログで探せる
  • 管理画面に入れなくても、プラグインのフォルダ名を変えるだけで止められる
  • 切り替える前のバックアップと互換性の確認が、いちばんの予防策

 

なぜPHPを新しくすると動かなくなるのか

WordPressは、PHPというプログラムの上で、WordPress本体・テーマ・プラグインが動いています。PHPは新しい版になるたびに、古い書き方の一部を使えなくしたり、間違った使い方を厳しくチェックしたりするようになります。下の図(再生ボタンで動画になります)は、その様子を示したものです。

PHPを新しくするとWordPressが動かなくなる理由を示す図。WordPressは、PHPの上でWordPress本体・テーマ・プラグインが動いている。PHPを古い版(7.4)から新しい版(8.3)にすると、古い関数の削除、型のチェックが厳しくなる、非推奨の警告が増える、などの変化がある。最近更新されているプラグインAやテーマは問題なく動くが、数年更新されていないプラグインBは古い書き方が残っていてエラーで止まる。その1つのエラーで、このサイトで重大なエラーが発生しました、と表示され、真っ白な画面や500エラー、管理画面に入れないなどの状態になることがある

WordPress本体は、新しいPHPへの対応が比較的早く進められています。
問題になりやすいのは、何年も更新されていないプラグインやテーマ、そして制作会社などが独自に書いたプログラムです。

PHPの版が上がるときに変わったことの例

変わったことどんな影響が出るか変わった版
古い関数の削除(each()、create_function() など)その関数を使っているプラグインが、致命的なエラーで止まる8.0
型のチェックが厳しくなった(数えられない値を count() で数える、など)以前は警告で済んでいたものが、エラーで止まるようになった8.0
非推奨の書き方への警告が増えた(動的プロパティなど)動作は続くことが多いが、画面やログに警告が出る8.2
古いデータベース用の関数(mysql_ で始まるもの)の削除非常に古いプラグインや独自プログラムが動かなくなる7.0

特に、7.4から8.0以降へ上げるときは変更が大きく、トラブルが起きやすい段階です。

なお、エラーが出たからといって、新しいPHPそのものに問題があるとは限りません。
以前からあったプログラムの問題が、新しいPHPで表に出たということもよくあります。
また、PHPの切り替えと同じ時期に、プラグインの更新やサーバーの設定変更をしていれば、それも原因の候補です。
決めつけずに、記録と変更の履歴から確かめることが大切です。

 

症状から分かる、主な原因

画面の様子によって、どこを疑えばよいかの見当がつきます。

症状から分かる主な原因の表。真っ白な画面は、プラグイン・テーマの致命的なエラーでエラー表示がオフの状態。重大なエラーが発生しました、の表示は、プラグイン・テーマの致命的なエラーでリカバリーモードが働いている状態。500エラーは、PHPのエラーや、.htaccessやphp.iniの古い設定。管理画面だけ入れないのは、管理画面用のプラグインやログインまわりの機能のエラー。ページ上に警告文が出るのは、非推奨の警告で表示がオンのままの状態で、動作は続くことが多い。一部の機能だけ動かないのは、フォーム・予約・決済などのプラグインの互換性。どの症状でも、最初にやることは、慌てずに元のPHPのバージョンに戻すこと

ただし、画面やログに表示されたファイルが、そのまま原因とは限りません。
別のプログラムとの組み合わせで起きていることもあるので、ログはエラーの行の前後もあわせて確認しましょう。

ページ上に「Deprecated」「Warning」といった英語の警告文が表示される場合は、すぐにサイトが止まるわけではありません。
ただし、訪問者にサーバーの情報が見えてしまうため、表示はオフにして、原因のプラグインの更新を進めましょう。

 

動かなくなったときの対処の流れ

動かなくなったときは、次の5つの順番で進めます。

下の図(再生ボタンで動画になります)は、その流れを示したものです。

WordPressが動かなくなったときの対処の流れの図。1 サーバーの管理画面でPHPの版を元に戻す。2 エラーログやリカバリーモードのメールで原因を探す。3 原因のプラグインを停止する。4 更新するか、別のプラグインへ入れ替える。5 新しい版にもう一度切り替えて動作を確認する。管理画面に入れないときは、FTPやファイルマネージャーで、wp-content/pluginsの中の原因のフォルダ名を変える(例:plugin-bをplugin-b-offに)。名前を戻せば元に戻せる

手順1:まず、元のPHPの版に戻す

最初にやるのは、原因探しではなくサイトの復旧です。サイトが止まっている間は、お問い合わせや予約、売上も止まっています。
エラーの記録は戻したあとも残るので、調査はあとからでもできます。
戻す前に、表示された画面のスクリーンショットと、起きた時刻だけメモしておきましょう。

多くのレンタルサーバーでは、管理画面の「PHPのバージョン設定」から、すぐに元の版に戻せます。
これで、多くの場合はサイトが元どおり表示されます。

ただし、8.1以前に戻すのは一時的な措置です。

古い版には今回のような脆弱性の修正版が出ないため、原因を直したら、できるだけ早く新しい版に切り替え直してください。

手順2:原因のプラグインやテーマを探す

まず、PHPの切り替えと同じ時期に、ほかに変えたことがないかを思い出します(プラグインやテーマの更新、設定の変更など)。そのうえで、次の3つの方法で原因を探します。

  • リカバリーモードのメール:WordPressは、致命的なエラーが起きると、管理者のメールアドレスに「サイトで技術的な問題が発生しています」というメールを送ります。メールには、原因のプラグインやテーマの名前と、その問題を避けて管理画面に入れる特別なリンクが書かれています。
  • サーバーのエラーログ:レンタルサーバーの管理画面から見られることが多く、「PHP Fatal error」の行に、エラーが起きたファイルの場所が書かれています。場所に含まれる plugins/ の次の名前が、原因のプラグインです。
  • WordPressのデバッグ記録:wp-config.php に次の設定を入れると、エラーの内容が wp-content/debug.log に記録されます。

define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false );

デバッグ記録には注意点があります。debug.log は、初期設定のままではURLを入れれば誰でも見られる場所に作られます。サーバーの情報が漏れる原因になるので、原因が分かったら設定を元に戻し、debug.log を削除してください。なお、Bedrockなど構成が異なるWordPressでは、設定を書く場所が違います。

手順3:原因のプラグインを止める

管理画面に入れる場合は、「プラグイン」の画面から、原因のプラグインを「無効化」します。

管理画面に入れない場合は、FTPソフトやサーバーのファイルマネージャーで、wp-content/plugins/ の中にある原因のプラグインのフォルダ名を変更します(例:plugin-b → plugin-b-off)。WordPressはそのプラグインを読み込めなくなり、自動的に停止します。フォルダ名を元に戻せば、プラグインの設定もそのまま戻ります。

ただし、プラグインを止めると、そのプラグインが担っていた機能も止まります。お問い合わせフォームや決済、予約などのプラグインなら、止めている間はその機能が使えません。止める前に、何の機能のプラグインかを確認し、必要ならサイト上でお知らせしましょう。テスト用の環境があれば、先にそちらで試すのが安全です。

原因がテーマの場合も、wp-content/themes/ の中で同じようにフォルダ名を変えると、WordPressは標準のテーマで表示しようとします(標準のテーマが入っていることが条件です)。

手順4:直すか、入れ替える

原因対処
更新版が出ているプラグイン・テーマ最新の版に更新する
何年も更新されていないプラグイン同じ働きをする、更新が続いている別のプラグインに入れ替える
有料テーマ・有料プラグイン販売元の対応状況を確認し、最新版を入手する
制作会社などが独自に書いたプログラム作った会社や開発者に、新しいPHPへの対応を依頼する

何年も更新されていないプラグインは、PHPへの対応だけでなく、セキュリティの面でも危険です。

この機会に入れ替えることをおすすめします。

手順5:もう一度切り替えて、動作を確認する

原因を直したら、もう一度新しいPHPに切り替えます。切り替えたあとは、トップページだけでなく、次の点まで確認しましょう。

  • 主なページが、崩れずに表示されるか
  • 管理画面にログインでき、記事の保存や画像のアップロードができるか
  • お問い合わせフォームから送信でき、メールが届くか
  • 予約投稿や、予約・決済などの機能が動くか
  • エラーログに、新しいエラーが増えていないか

 

動かなくならないための、事前の準備

いちばん良いのは、切り替える前にトラブルを防ぐことです。

PHPのバージョンアップでWordPressが動かなくならないための事前の準備の図。1 バックアップ(ファイルとデータベースの両方で、戻せる状態を作る)。2 今の版を記録(今のPHPのバージョンを控え、戻す先を決めておく)。3 互換性の確認(プラグイン・テーマの最終更新日と対応の版)。4 先に更新(WordPress本体・テーマ・プラグインを最新に)。5 テストで試す(テスト用の環境や、アクセスの少ない時間に)。6 切り替えて確認(表示・フォーム・管理画面・予約投稿)。8.1以前を使っている場合は、修正版が出ないため早めの切り替えが必要。一気に最新の版にせず、8.1から8.2、8.3のように1段ずつ上げると、原因を絞りやすくなる

  • バックアップ:ファイルとデータベースの両方を取ります。片方だけでは、サイトを元に戻せません。取るだけでなく、実際に戻せるか、戻す手順と権限も確認しておきましょう。
  • 互換性の確認:WordPress公式サイトのプラグインのページで、「最終更新」の日付と「PHPバージョン」の欄を確認します。何年も更新されていないものは要注意です。
  • 先に更新:PHPを切り替える前に、WordPress本体・テーマ・プラグインを最新にしておきます。新しいPHPへの対応は、多くの場合、更新で済みます。ただし、プラグインの更新とPHPの切り替えを同時にしないこと。先に更新して動作を確かめてから、別のタイミングでPHPを切り替えると、問題が起きたときに原因を絞れます。
  • 使っていないプラグインの整理:使っていないもの、開発が止まっているものは、この機会に削除します。確認する対象が減り、セキュリティの面でも安全になります。
  • テストで試す:サーバー会社によっては、本番のサイトをコピーしたテスト環境を作れます。難しい場合は、アクセスの少ない時間に切り替え、すぐに戻せるよう準備しておきます。なお、テスト環境で問題がなくても、設定やデータの違いで本番だけ問題が出ることもあります。本番の切り替え後の確認も省かないでください。
  • 1段ずつ上げる:7.4から一気に8.3にするより、8.0、8.1、8.2と順に上げたほうが、どこで問題が出たかを絞りやすくなります。

 

ふだんの運用で備える

PHPの切り替えに限らず、WordPress本体やプラグインの更新でも、不具合は起こり得ます。
更新のたびに迷わないよう、次のような標準の手順を決めておくと安心です。

  1. 何を、どの版に更新するかを確認する
  2. バックアップを取る
  3. できればテスト用の環境で試す
  4. 本番に更新を適用する(1回に変えるものは少なく)
  5. 主なページと機能を確認する
  6. エラーがあれば記録を確認して対応する
  7. 必要なら元に戻し、原因を調べてからやり直す

そして、PHPの更新を長く先延ばしにしないことも大切です。
「動かなくなるのが怖い」と更新を避け続けると、サポートの終わった版のまま、今回のような緊急の脆弱性に直面することになります。
平常時に少しずつ対応しておくほうが、結果的に安全で、手間も少なく済みます。

 

よくある質問

Q. PHPを更新すると、WordPressは必ず動かなくなりますか?

必ず動かなくなるわけではありません。WordPress本体・テーマ・プラグインが更新されていれば、問題なく動くことがほとんどです。動かなくなるのは、新しいPHPに対応していない古いプラグインやテーマ、独自のプログラムがある場合です。

Q. PHPのバージョンを戻せば、問題は解決しますか?

サイトは一時的に元どおり動きますが、原因が直ったわけではありません。古いPHPには修正版が出ない脆弱性が残ることもあるため、戻したままにせず、原因を直して新しい版に切り替え直しましょう。

Q. 古いPHPのまま使い続けてはいけませんか?

おすすめできません。サポートが終わった版には、今回のような重大な脆弱性が見つかっても、PHPの開発チームからの修正版が出ません。サーバー会社が古い版の提供をやめることもあります。トラブルが起きにくい平常時のうちに、計画的に切り替えておくのが安全です。

Q. 警告文が出るだけなら、そのままでもいいですか?

警告(Deprecated・Warning)だけなら、サイトは動き続けることが多いです。ただし、画面に表示されていると、訪問者にサーバーの情報が見えてしまいます。表示はオフにし、次のPHPの版でエラーに変わる前に、原因のプラグインを更新・入れ替えしましょう。

Q. PHPを新しくすると、サイトは速くなりますか?

一般に、新しいPHPは処理の速さが改善されていることが多く、表示が速くなる場合があります。ただし、速さはプラグインの数やサーバーの性能などにも左右されるため、必ず速くなるとは限りません。

Q. 自分では原因が分かりません。誰に相談すればいいですか?

まずは元のPHPの版に戻してサイトを復旧させてください。そのうえで、PHPの設定やエラーログの見方はレンタルサーバー会社に、特定のテーマやプラグインが原因なら開発元に、独自のプログラムが原因なら作った制作会社や開発者に相談します。エラーログやリカバリーモードのメール、メモした画面と時刻があれば、原因の特定が早くなります。

 

まとめ:慌てずに「戻す → 探す → 止める → 直す」

  • 動かなくなる原因の多くは、更新されていない古いプラグインやテーマ
  • 動かなくなったら、まず元のPHPの版に戻して復旧させる
  • 原因は、同時に変えたことを思い出し、リカバリーモードのメール・エラーログ・デバッグ記録で探す
  • 管理画面に入れなくても、フォルダ名の変更でプラグインを止められる
  • 切り替える前のバックアップ・互換性の確認・先に更新が、いちばんの予防策。変更は分けて、少しずつ
  • 更新を長く先延ばしにしないことが、長い目で見た安全につながる

金風株式会社では、WordPressのPHPのバージョンアップの事前確認や、動かなくなったサイトの復旧、古いプラグインの入れ替えのご相談を承っています。セキュリティ診断では、PHPのバージョンやプラグインの更新状況もあわせて確認します。お気軽にご相談ください。

 

あわせて読みたい

最新のお役立ち情報はメルマガでもお届けしています