WordPressのPHPバージョンアップ完全手順|主要サーバー別変更手順と非推奨エラー・互換性トラブル解消法

WordPressでWebサイトやブログを運営していると、管理画面に「PHPのバージョンを更新してください」「推奨されるPHPバージョンを実行していません」という警告通知が表示され、対応に頭を抱えている方も多いのではないでしょうか。

PHPはWordPressを動かす根幹のプログラミング言語であり、そのバージョンアップは サイトの表示速度向上(Core Web Vitals改善) や 深刻なセキュリティ脆弱性の排除 に直結する極めて重要なメンテナンス作業です。

しかし、その一方で「PHPのバージョンアップをしたら画面が真っ白になってしまった」「重大なエラーが発生して管理画面に入れなくなった」「Deprecatedという警告がサイト上に大量に出て消えない」といった互換性トラブルを恐れ、古いPHPバージョンのまま何年も放置してしまっているケースが後を絶ちません。

本記事は、当サイトの親記事である WordPressの推奨PHPバージョンと確認・変更手順|互換性対応表&不具合対策 で解説している推奨バージョン選定や確認手順をさらに発展させ、 「主要レンタルサーバー別の具体的な切り替え&即時ロールバック手順」 と 「更新後に発生するFatal ErrorやDeprecated(非推奨警告)の安全な解消法」 に特化した実践的マニュアルです。

事前準備のチェック項目から、主要4大レンタルサーバー別の変更手順、万が一の白画面・Fatal Error時の緊急復旧法、wp-config.php や .htaccess を使ったエラー制御コードまで、初心者からWebサイト管理者まで迷わず安全に作業できるよう完全網羅して解説します。


目次

なぜPHPバージョンアップが必要なのか?メリットと事前リスク

PHPのバージョンアップを行う目的は、単に管理画面の警告メッセージを消すことだけではありません。サーバーサイドの処理能力を最大化し、サイバー攻撃からサイトを守るための必須運用です。まずは、バージョンアップがもたらす絶大なメリットと、事前に知っておくべきリスクを正しく理解しましょう。

実行速度の向上(サイト高速化・Core Web Vitals改善)とセキュリティ保守期限

PHPを最新の安定バージョンへ更新することで得られる最大のメリットは、 「劇的なサイト高速化」 と 「セキュリティ脆弱性の解消」 の2点です。

1. サーバー処理能力の向上とTTFB(初回応答時間)の大幅短縮

PHPは新しいマイナー・メジャーバージョンが公開されるたびに、構文解析エンジンの最適化、メモリ消費効率の改善、JIT(Just-In-Time)コンパイル機能の強化が行われています。
過去のレガシーなPHPバージョン(PHP 7.4や8.0など)から最新の安定版へアップデートすると、同一サーバー環境であっても PHPスクリプトの実行速度が1.5倍から2倍以上向上 します。

これにより、訪問者がページをリクエストしてからサーバーが最初のデータを返すまでの時間である 「TTFB(Time to First Byte)」 が大幅に短縮されます。ページの初回表示が高速化されることは、Googleの検索評価指標である Core Web Vitals(LCPやINP)のスコア改善 にダイレクトに直結し、検索順位の向上や直帰率の低下、お問い合わせ・コンバージョンの増加をもたらします。

2. 公式セキュリティサポート期限(EOL)切れによる攻撃リスクの排除

PHPはオープンソースコミュニティによって開発されており、各バージョンには明確な「セキュリティサポート期限(EOL:End of Life)」が設定されています。
公式サポートが終了した古いPHPバージョンに対しては、 たとえ新たな重大なセキュリティホール(リモートコード実行、メモリ破壊、権限昇格など)が発見されても、公式の修正パッチは二度と提供されません 。

サイバー攻撃者は、公式パッチが配信されないサポート切れのPHP環境を標的にして、悪意ある自動攻撃ボットを無差別に巡回させています。古いPHPを稼働させ続けることは、鍵の壊れた玄関ドアを放置しているのと同義であり、サイト改ざんやマルウェア混入、個人情報漏えい事故の主因となります。

バージョンアップで発生する2大リスク(プラグイン・テーマ互換性不整合と画面真っ白)

メリットが大きい一方で、PHPバージョンアップを安易に実施すると重大な障害を引き起こす恐れがあります。発生する主なリスクは以下の2点です。

リスク1:古いプラグインやテーマが引き起こす致命的エラー(Fatal Error / WSOD)

PHPはバージョンが上がるにつれて、古い時代に使われていた曖昧な関数や非効率な記法を段階的に「非推奨(Deprecated)」とし、最終的には「完全廃止(Removed)」します。
もし利用しているプラグインやテーマの中に、最新PHPで廃止された関数を呼び出すコード(例:過去のMySQL関数やマジッククォート関数など)が含まれていると、PHPエンジンは処理を継続できなくなり、 「Fatal Error(致命的エラー)」 を発生させます。

その結果、Webサイト全体が真っ白になる「White Screen of Death(WSOD)」や、「このサイトで重大なエラーが発生しました」というメッセージが表示され、一般訪問者への公開停止だけでなく、 WordPress管理画面へのログインすら一切不可能な状態 に陥ります。

リスク2:非推奨警告(Deprecated)の画面露出による信頼性低下

致命的な停止エラーには至らない場合でも、最新PHPの厳格な型判定や未定義プロパティの動的生成禁止ルールに引っかかり、「Deprecated: Creation of dynamic property…」といった大量の警告メッセージがページ上部に露出してしまうことがあります。
サイトの機能自体は動作していても、デザインが著しく崩れたり、一般訪問者にシステムの内部パスや警告が表示されることで、 企業の信用失墜やSEO上の悪影響 を引き起こします。

これらのリスクを未然に防ぎ、万が一の際にも数分で復旧できるようにするためには、事前の綿密な準備と手順の遵守が欠かせません。


【事前準備】PHPバージョンアップ前に必ず実行すべき3つのステップ

本番サイトのPHPバージョンを切り替える前に、必ず以下の3つのステップを確実に実行してください。この事前準備を怠らなければ、トラブル発生率は9割以上低減できます。

ステップ1: サイト全体の完全バックアップ(データベース+ファイル一式)

PHPの切り替え作業において、最も重要な生命線が「直前の完全バックアップ」です。
PHP自体の切り替えはサーバーの設定変更ですが、バージョンアップに伴ってプラグインの自動更新を行ったり、設定ファイルを編集する過程でデータが破損するリスクがあります。

必ず以下の2つのデータをセットで保存してください。

  1. データベース(MySQL / MariaDB)データ
    すべての投稿記事、固定ページ、カスタム投稿、コメント、ユーザーデータ、プラグインやテーマの設定値が含まれます。
  2. Webサーバー上のファイル一式
    wp-content/themes(テーマファイル・子テーマ)、wp-content/plugins(導入中の全プラグイン)、wp-content/uploads(メディアライブラリの画像・PDF等)、および wp-config.php と .htaccess(最重要設定ファイル)を保存します。

バックアップの具体的な取得手順や、トラブル時に最短10分でリストアするノウハウについては、以下の解説記事をあわせてご確認ください。

👉 【最短10分復旧】WordPressバックアップ&復元完全手順|主要サーバー別自動復元・プラグイン・手動リストア

ステップ2: テーマ・全プラグインを最新バージョンへアップデート

PHPバージョンを上げる前に、 WordPress本体、有効化している全テーマ、および全プラグインをあらかじめ最新版に更新 しておきます。

世界中の著名なプラグイン開発元やWordPress公式コアチームは、新しいPHPバージョンのリリースに合わせて非推奨コードの改修や互換性パッチを配信しています。
多くの互換性トラブルは、「PHPを上げる前にプラグインの更新をサボっていたこと」が原因で発生します。

  1. WordPress管理画面の 「ダッシュボード」>「更新」 を開きます。
  2. WordPressコアの更新があれば、まず本体を最新安定版へ更新します。
  3. 利用中の全プラグインを選択し、一括更新を実行します。
  4. 有効化しているテーマ(親テーマおよび子テーマ)の最新版への更新を行います。
  5. 長期間使用していない「停止中」のプラグインやテーマは完全削除 します(停止中であっても脆弱性の原因になったり、特定のフックでエラーを呼ぶことがあります)。

ステップ3: PHP互換性チェックとステージング(テスト環境)での動作確認

本番環境でいきなり切り替える前に、利用中のテーマやプラグインが最新PHPに対応しているかを検証します。

1. プラグインの最終更新日と対応要件のチェック
WordPress公式ディレクトリから入手したプラグインであれば、プラグイン詳細ページを確認します。最終更新日が1〜2年以上前で開発が停止しているプラグインや、「対応PHPバージョン」に古いバージョンしか明記されていないプラグインは、最新PHP環境でエラーを起こす可能性が極めて高いため、事前に代替プラグインへの移行を検討してください。

2. ステージング環境(テスト環境)の活用
エックスサーバーやConoHa WINGなど、主要レンタルサーバーには本番サイトを丸ごと複製できる 「ステージング機能(テスト環境作成機能)」 が標準提供されています。
ステージング環境を作成し、そちらで先行してPHPバージョンを切り替えて以下の動作テストを行います。

  • トップページや主要記事のレイアウト崩れがないか
  • お問い合わせフォーム(Contact Form 7など)の送信テストが成功するか
  • 管理画面での記事新規作成・メディアアップロードが正常に完了するか
  • 会員機能やEC機能(WooCommerce等)が正常に決済・ログインできるか

テスト環境で問題がないことを確認できてから本番環境の切り替えに進めば、トラブルのリスクをほぼゼロに抑えられます。


【主要4大レンタルサーバー別】PHPバージョン変更と即時ロールバック手順

国内で圧倒的なシェアを持つ主要4大レンタルサーバー( エックスサーバー、ConoHa WING、さくらインターネット、ロリポップ! )における、PHPバージョンの具体的な切り替え操作手順と、トラブル発生時の即時ロールバック(切り戻し)手順をステップ順に解説します。

各サーバーとも、専用の管理パネルから数クリックで簡単に切り替えが可能ですが、反映速度や操作メニューの階層に違いがあります。

エックスサーバー(Xserver):サーバーパネルからの変更手順と注意点

エックスサーバーはドメイン単位で個別にPHPバージョンを指定でき、設定変更が数十秒〜数分でスピーディーに反映されます。

  1. エックスサーバーの 「サーバーパネル」 にログインします。
  2. 画面中央の「PHP」カテゴリ内にある 「PHP Ver.切替」 をクリックします。
  3. 変更対象のドメイン名の右側にある 「選択する」 をクリックします。
  4. 「現在のバージョン」を確認し、「変更後のバージョン」のプルダウンから最新の推奨バージョン(例:PHP 8.3.x や PHP 8.4.x)を選択します。
  5. 「変更」 ボタンをクリックします。これで切り替え完了です。

【即時ロールバック(切り戻し)手順】
もしサイトにエラーが表示された場合は、再度サーバーパネルの 「PHP Ver.切替」 を開き、ドロップダウンメニューから直前のバージョン(例:PHP 8.2.x や PHP 8.1.x)を選び直して 「変更」 をクリックしてください。数十秒以内に元の正常な状態へ復旧します。

ConoHa WING:コントロールパネルでの切り替えとWAF設定の確認

ConoHa WINGはコントロールパネルの操作性が高く、PHPバージョンの変更が即時反映されます。

  1. ConoHaコントロールパネルにログインします。
  2. 左メニューの 「サイト管理」>「サイト設定」 を開きます。
  3. 画面上部タブの 「応用設定」 を選択し、メニュー内の 「PHP設定」 をクリックします。
  4. バージョン欄の右端にある鉛筆マーク(編集アイコン)をクリックします。
  5. プルダウンメニューから推奨バージョン(例:8.3 や 8.4)を選択し、 「保存」 をクリックします。

【注意点と即時ロールバック】
ConoHa WINGでは、PHPバージョン切り替えに伴うサーバー内部の挙動変化によって、備え付けの WAF(Web Application Firewall)が誤検知を起こすケース があります。もし切り替え後に管理画面で「403 Forbidden」が出る場合は、左メニュー「サイト管理」>「サイトセキュリティ」>「WAF」の検知ログを確認し、誤検知されたシグネチャを除外してください。
サイトに致命的な不具合が出た場合は、再度「PHP設定」から直前のバージョンを選択して「保存」を押せば即座に復元されます。

さくらインターネット:コントロールパネルでのPHPバージョン変更手順

さくらのレンタルサーバ(新コントロールパネル)では、ドメインごとのバージョン指定が柔軟に行えます。

  1. さくらのレンタルサーバ 「サーバコントロールパネル」 にログインします。
  2. 左メニューの 「スクリプトとプログラム」>「言語バージョン設定」 をクリックします。
  3. 「パッケージ」タブを選択し、「PHPのバージョン」設定項目を確認します。
  4. ドメインごとに個別設定する場合は「ドメインごとの設定」を展開し、対象ドメインのプルダウンから推奨バージョン(例:PHP 8.3)を選択します。
  5. 画面下部の 「保存する」 ボタンをクリックして変更を確定します。

【即時ロールバック手順】
問題が発生した場合は、同じく「言語バージョン設定」画面に戻り、以前稼働していたバージョンを選択し直して「保存する」をクリックします。数秒〜数十秒で即座に設定がロールバックされます。

ロリポップ!(Lolipop):ユーザー専用ページでの変更とモジュール版/CGI版の選択

ロリポップ!では、プランによって「CGI版」と「モジュール版」が提供されており、変更時の反映に5〜10分程度の時差が発生する特徴があります。

  1. ロリポップ!の 「ユーザー専用ページ」 にログインします。
  2. 左側メニューの 「サーバーの管理・設定」>「PHP設定」 を開きます。
  3. 設定されているドメインの一覧が表示されるため、変更対象ドメインの行を確認します。
  4. 「バージョン」の選択肢から、最新の推奨バージョン(例:PHP 8.3 (モジュール版))を選択します。
    ※スタンダード・ハイスピードプラン等で利用可能な 「モジュール版」 は、従来のCGI版に比べてPHP処理速度が圧倒的に高速化されるため、特別な理由がない限りモジュール版の選択を推奨します。
  5. 「変更」 ボタンをクリックします。

【注意点と即時ロールバック】
ロリポップ!はサーバーの内部同期のため、 設定変更から実際のWebサイトへ反映されるまでに約5分〜10分程度 かかります。変更直後にページを更新しても反映されていない場合がありますので、数分待ってから動作確認を行ってください。
万が一エラーが出た場合も、同様に旧バージョンを選んで「変更」を押しますが、ロールバックの反映にも数分のタイムラグが発生することを念頭に置いて落ち着いて対処しましょう。

【比較まとめ表】主要サーバー別PHP切り替え手順・ロールバック所要時間一覧

国内4大サーバーのPHP切り替え仕様とロールバック対応を以下の比較表にまとめました。

サーバー名管理画面メニュー反映速度ロールバックの容易さ備考・注意点
エックスサーバーサーバーパネル > PHP Ver.切替即時〜数分パネルから旧版選択で即時復元ドメイン単位で変更可能
ConoHa WINGコントロールパネル > サイト管理 > 応用設定即時反映選択肢変更で即時復元切り替え時にWAFの誤作動に注意
さくらインターネットコントロールパネル > スクリプト設定即時反映バージョン選択で即時復元ドメインごとの個別設定が可能
ロリポップ!ユーザー専用ページ > サーバーの管理・設定5〜10分程度設定変更で再反映可能CGI版とモジュール版の指定に留意

PHP更新後にエラー・画面真っ白(WSOD)が発生したときのトラブルシューティング

PHPを切り替えた直後、サイトを開いて「画面が真っ白(White Screen of Death)」になったり、「このサイトで重大なエラーが発生しました」という通知が表示されても、決してパニックになる必要はありません。
データベースや投稿データが消えたわけではなく、単にPHPスクリプトの実行が途中で停止しただけ です。以下の手順に従って冷静に対処しましょう。

「Fatal Error」と「Deprecated(非推奨警告)」の切り分けと緊急対処

トラブルが発生した際は、まずその不具合が「サイトが停止する致命的エラー」なのか「単なる警告表示」なのかを明確に切り分けます。

  • Fatal Error(致命的エラー)
    ・状態:画面が完全に真っ白になる、または「このサイトで重大なエラーが発生しました」と表示され、ページ表示や管理画面操作が全面的に停止する。
    ・原因:廃止されたPHP関数の呼び出し、構文破壊、型の不一致などによるプロセスの異常終了。
    ・対処基準:最優先で直前のPHPバージョンへ即時ロールバック するか、原因プラグインを緊急停止させる。
  • Deprecated(非推奨警告)
    ・状態:サイトのページやコンテンツは正常に表示・操作できるが、画面の最上部や特定の箇所に「Deprecated: Function … is deprecated」といったテキストが露出する。
    ・原因:将来のメジャーアップデートで廃止予定の古い書き方がコードに残っている警告。
    ・対処基準:プログラム自体の実行は成功しているため、本番環境で訪問者にエラー文を見せないよう画面非表示設定(display_errors = 0)を行う 。その後、プラグインのアップデートを待つ。

サーバーパネルから直前のPHPバージョンへ即時ロールバックする手順

訪問者が訪れる本番サイトでFatal Errorが発生している場合、最優先すべきは 「サイトを数十秒〜数分で正常稼働状態へ戻すこと」 です。原因究明に時間をかけて一般公開を停止させてはなりません。

  1. 直ちに契約サーバーの管理画面(サーバーパネルやコントロールパネル)を開きます。
  2. 前述の「主要レンタルサーバー別手順」に従い、PHPバージョン設定画面へ移動します。
  3. 直前まで安定稼働していたPHPバージョン(旧バージョン)を選択して保存 します。
  4. ブラウザでサイトを開き、正常にトップページや管理画面が表示されることを確認します。

このロールバックによってサイトは即座に通常運用へ復帰します。その後、落ち着いて以下のデバッグ手順で原因を特定していきます。

wp-config.php の WP_DEBUG によるエラーログ出力と原因プラグインの特定

「どのプラグインのどのコードが原因で止まったのか」を特定するには、WordPress標準のデバッグ機能を有効化します。

サーバーのファイルマネージャーまたはFTPソフトでWordPressルート直下にある wp-config.php を開き、以下の設定コードを記述します。

// デバッグモードの有効化
define('WP_DEBUG', true);
// 画面上にエラーを表示させず、wp-content/debug.log に出力
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);

【設定のポイント】
・WP_DEBUG を true にすることで、WordPress内部のエラー検知を有効化します。
・WP_DEBUG_LOG を true にすることで、エラー内容を wp-content/debug.log ファイルに自動保存します。
・WP_DEBUG_DISPLAY を false および @ini_set('display_errors', 0) とすることで、 エラーログを記録しながらも一般訪問者の画面上にはエラー文を一切表示させない安全な運用 が可能です。

設定を保存した後、エラーが発生していたページへアクセスすると、wp-content/debug.log に以下のような詳細ログが出力されます。

[01-Jan-YYYY 12:00:00 UTC] PHP Fatal error: Uncaught Error: Call to undefined function each() in /home/user/example.com/public_html/wp-content/plugins/sample-plugin/module.php:58

ログ内のファイルパスを見ることで、トラブルの元凶となっているプラグイン名(上記例であれば sample-plugin)やテーマが一目瞭然で特定できます。

重大なエラーのより詳細な調査法やリカバリーモードの活用法については、以下の記事も参考にしてください。

👉 【即時復旧】WordPress「このサイトで重大なエラーが発生しました」の原因特定と直し方完全ガイド|リカバリーモード・デバッグ手順

👉 【図解】WordPressの画面が真っ白(WSOD)になった時の原因と最短復旧ガイド

管理画面に入れない場合にFTP経由で原因プラグインを無効化する手順

管理画面がFatal Errorで開けない場合でも、FTPソフト(FileZilla等)やサーバーのWebファイルマネージャーを使えば、強制的に原因プラグインだけを停止できます。

  1. FTPソフトでサーバーに接続し、WordPressのインストールディレクトリを開きます。
  2. /wp-content/plugins/ ディレクトリへ移動します。
  3. エラーログで特定した原因プラグインのフォルダを探します(例:sample-plugin)。
  4. フォルダ名を一時的にリネーム します(例:sample-plugin_disabled や _sample-plugin)。
  5. フォルダ名が変わった瞬間に、WordPressは「プラグインファイルが見つからない」と判断し、 そのプラグインのみを自動的に安全に無効化(OFF) します。
  6. ブラウザで管理画面に再アクセスすると、通常通りログインできるようになります。

管理画面にログインできたら、そのプラグインの代替を探すか、開発元へ互換性対応の問い合わせを行いましょう。


wp-config.php / .htaccess での非推奨警告(Deprecated)の非表示化設定

最新のPHPバージョンへ移行した際、最も頻繁に遭遇するのが「Deprecated(非推奨警告)」の画面表示です。プログラム自体は停止していないものの、訪問者の目に見える場所に警告文が表示されるのは防がなければなりません。

本番環境でエラー画面を訪問者に見せないための display_errors 制御コード

本番環境(公開サイト)の鉄則は、 「エラーや警告はログファイル(debug.log)にだけ記録し、ブラウザ画面上には1文字も出力させない」 ということです。

方法1:wp-config.php による画面表示制御(最も確実)

WordPressの wp-config.php の /* That's all, stop editing! Happy publishing. */(編集が必要なのはここまでです)という行の直前に、以下のコードを記述します。

// デバッグログの記録と画面表示遮断設定
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);

これにより、Deprecated警告やNotice警告がすべてブラウザ画面から消去され、訪問者には美しいWebサイトだけが表示されます。

方法2:.htaccess によるPHPエラー出力抑制

Apache環境のWebサーバーを利用している場合、WordPressのルートディレクトリにある .htaccess ファイルの先頭に以下を追記することでも制御可能です。

# PHPエラーの画面出力を強制遮断
php_flag display_errors Off
php_flag display_startup_errors Off

※レンタルサーバーのPHP実行方式(CGI版・FastCGI版等)によっては .htaccess での php_flag 記述が許可されておらず、500 Internal Server Errorになる場合があります。その場合はサーバー管理画面の「php.ini設定」メニューから display_errors = Off を設定するか、方法1の wp-config.php への記述を行ってください。


🔍 バージョンアップ前の不安解消に!無料診断ツール「MozCheck」

PHPバージョンアップ前の事前準備や、更新後のサイトセキュリティ状態に不安はありませんか?
「MozCheck」なら、URLを入力するだけでWordPressサイトのセキュリティ設定、プラグインの脆弱性リスク、バージョン状況を無料・約1分で自動診断できます(会員登録不要)。バージョンアップ前の健全性チェックや定期的なメンテナンスにぜひご活用ください。

まとめとPHPバージョンアップ安全運用チェックリスト

WordPressのPHPバージョンアップは、サイトの 表示速度の向上・Core Web Vitals改善・セキュリティ堅牢化 を果たすための最重要メンテナンスです。

事前のバックアップとプラグインの最新化を徹底し、主要レンタルサーバー別のロールバック手順を押さえておけば、万が一不具合が発生しても数分で安全に対処できます。

最後に、PHPバージョンアップを安全に完了させるためのチェックリストをまとめました。作業前後の点検にご活用ください。

PHPバージョンアップ安全運用チェックリスト

  • 直前バックアップ:データベースとファイル一式(テーマ・プラグイン・画像)を完全保存したか
  • 更新の先行適用:WordPress本体・全テーマ・全プラグインを最新バージョンに更新したか
  • 不要プラグインの削除:停止中で使っていないプラグインやテーマをサーバーから完全削除したか
  • サーバー操作の確認:利用中サーバー(エックスサーバー/ConoHa/さくら/ロリポップ)のPHP切替メニューを確認したか
  • ロールバック手順の把握:不具合発生時に旧バージョンへ戻す手順を把握しているか
  • 切り替え後の表示確認:トップページ・個別記事・固定ページ・管理画面の表示に問題がないか
  • 重要機能の送信テスト:お問い合わせフォームやログイン機能が正常に動作するか
  • 非表示設定の確認:wp-config.php で display_errors をオフにし、画面上に不要な警告が出ていないか

正しい手順を守ってPHPを最新の状態に維持し、高速で安全なWordPressサイト運用を継続していきましょう。


参考・参照リンク

📚 あわせて読みたい関連記事

投稿者

🧰 WordPress無料診断

サイト改善の第一歩をお届け

当サイト「MozCheck」は、WordPressサイトの不安をチェックできる無料診断サービスです。
URLを入力するだけ。登録不要、すぐに診断結果が表示されます。

コメント

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です