AIを活用したWordPress・PHPバージョンアップ時のエラー修正方法
2026年10月21日、PHPに「PHP2Shell」と呼ばれる深刻な脆弱性が公表されました。
IPA(情報処理推進機構)や内閣総理大臣もPHPの脆弱性対策について注意喚起を行っており、影響を受けるPHPを利用している場合は、対策済みバージョンへの速やかな更新が求められています。
これをきっかけに、自社や顧客のWebサイトのPHPバージョンを改めて確認した方も多いのではないでしょうか。しかし、PHPをすぐにバージョンアップできない場合もあります。
例えば、古いテーマやプラグインが新しいPHPに対応しておらず、PHPを更新した途端にエラーが発生してサイトが正常に表示できなくなるケース等です。本来であれば、ローカル開発環境やテスト環境を用意し、事前に動作検証を行ってから本番環境へ反映するのが理想です。
とはいえ、小規模なWebサイトや古くから運用しているサイトでは、そうした環境が充分に用意されていないケースもあるでしょう。
そこで今回は、開発環境が用意されていないWordPressサイトを対象に、生成AIとデバッグログを活用して、PHPやWordPressのバージョンアップを実行し、それに伴うエラーを修正する方法をご紹介します。
※今回ご紹介するのは、あくまで暫定的な対処法です。本番環境で直接作業するため、バックアップとロールバック手段を確保しておくことが前提となります。
1. 事前にバックアップを取得する
まずは、WordPressの必要なファイルとデータベースのバックアップを取得します。
WordPressのファイルはFTP/SFTPでダウンロードし、データベースはサーバーに用意されているphpMyAdminなどのデータベース管理ツールからSQL形式でエクスポートします。
- WordPressテーマ(
wp-content/themes内) - プラグインファイル(
wp-content/plugins内) - アップロードした画像などのメディアファイル(
wp-content/uploads内) wp-config.phpなどのWordPress本体の設定ファイル- データベース(SQL)
※PHPのバージョンは、利用中のレンタルサーバーなどで旧バージョンに戻せるかどうかも確認しておきましょう。
2. LightStartでメンテナンスモードにする
バージョンアップ作業中に、一般の訪問者へエラー画面が表示されないよう、WordPressをメンテナンスモードにします。簡単にメンテナンスモードにするためには、無料のWordPressプラグイン「LightStart」を使います。

LightStartは、メンテナンス中などのお知らせページを表示できるプラグインです。WordPressの管理画面からプラグインをインストール・有効化したら、以下のように設定します。
- 固定ページで「メンテナンスのお知らせ」を作成する
- LightStartの設定で、作成した固定ページを指定する
- メンテナンスモードを有効にする
- ログアウト状態やシークレットウィンドウで、お知らせページが表示されることを確認する
メンテナンス中の固定ページには、以下のような文章を掲載しましょう。
現在、システムメンテナンスを実施しております。
ご利用の皆さまには大変ご不便をおかけいたしますが、作業完了までしばらくお待ちくださいますようお願いいたします。
メンテナンス予定時刻:2026年◯月◯日 ○:◯◯から○:◯◯まで(予定)
※メンテナンス時刻は状況により前後する場合があります。
これで、一般の訪問者にはメンテナンスのお知らせを表示しつつ、管理者はログインした状態で動作確認を進められます。
3. WordPressのデバッグログを有効にする
続いて、PHPやWordPressで発生したエラーを記録できるようにします。
WordPressには、エラー情報を debug.log というファイルへ出力する仕組みが用意されています。
- FTP/SFTPでサーバーに接続し、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);
※同じ定数がすでに定義されている場合は、重複して追加せず、既存の値を変更してください。
それぞれの意味は以下のとおりです。
| 定数 | 内容 |
|---|---|
| WP_DEBUG | デバッグモードを有効にする |
| WP_DEBUG_LOG | エラーをログファイルに記録する |
| WP_DEBUG_DISPLAY | エラーを画面上に表示しない |
| display_errors | PHPのエラー画面表示を抑制する |
これにより、通常は「/wp-content/debug.log」にエラーログが出力されるようになります。
(参考:WordPress公式デバッグ設定ドキュメント)
※デバッグログにはサーバーの内部パスなどの情報が記録される場合があります。
作業が終了したらメンテナンスモード解除前に debug.log を削除して、上記の設定も忘れずに元に戻しましょう。(詳細は後述します)。
4. PHPやWordPress本体をアップデートする
PHPやWordPress本体のバージョンアップを行います。
PHPの更新は、レンタルサーバーの管理画面などから実施し、WordPress本体は管理画面の更新機能またはFTP/SFTPを利用します。
この際、できるだけひとつずつ作業することをおすすめします。エラーが発生した際に、どの変更が原因なのかを特定しやすくするためです。
- PHPのバージョンを変更する
- WordPressの管理画面や主要ページを確認する
- 問題がなければWordPress本体を更新する
- 再度、管理画面や主要ページを確認する
5. FTPでdebug.logをダウンロードする
バージョンアップ後、サイト内のページや管理画面を表示し、エラーが発生していないかを確認します。
画面が真っ白になったり、エラー文言が発生していたりする場合は、FTP/SFTPで以下のファイルをダウンロードします。
/wp-content/debug.log
このファイルには、PHPのエラーや警告などが記録されています。
//エラーの例
PHP Fatal error: Uncaught Error:
Call to undefined function sample_function()
in /wp-content/themes/sample-theme/functions.php
on line 120
上記の例は、テーマの functions.php ファイルの120行目付近で、存在しない関数が呼び出されていることを示しています。
このように、エラーログには実際にどのファイルの何行目で問題が発生したのかが記録されるため、修正時の重要な手がかりになります。
6. AIにdebug.logを読み込ませて原因調査・修正する
ここからAIを活用します。CodexやClaudeなどのAIに、取得した debug.log を読み込ませて、以下のようなプロンプトとともにエラーの原因と解決策を調査します。
## エラーチェックプロンプトの例
WordPressとPHPのバージョンアップ後に発生したエラーログです。
ログを解析して、以下の内容を整理してください。
・エラーの一覧と発生箇所
・エラーの重要度と、サイトへの影響
・PHPまたはWordPressのバージョンアップとの関連性
・原因となっている可能性が高いテーマ・プラグイン・関数
・推奨される修正方法
あわせて、該当するテーマやプラグインのPHPファイルもAIに読み込ませ、修正案を作成します。修正を依頼する際、AIには以下の条件も伝えておくとよいでしょう。
## 修正の際に指示する条件
・既存の機能や動作を可能な限り維持する
・エラーに関連する箇所だけを最小限修正する
・修正理由と変更箇所を明示する
・不明な部分は推測で修正しない
・セキュリティや互換性に問題のある変更は避ける
また、ログやソースコードには個人情報や認証情報が含まれる可能性があるため、AIに渡す前に内容を確認し、必要に応じてマスキングしてください。
7. 修正ファイルをアップロードして動作を確認する
AIが提案した修正内容を確認し、対象のPHPファイル等を修正します。
修正前のファイルは必ずバックアップしておき、FTP/SFTPを使って修正ファイルをアップロードしましょう。
その後、管理画面や主要ページを確認します。エラーが解消されない場合は、 debug.log に追記された新しいエラーを改めて取得し、AIに解析させ修正を繰り返します。
8. デバッグ設定とメンテナンスモードを解除する
動作確認が完了したら、サーバー上に作成された debug.log を削除して、デバッグモードを解除します。
次に、wp-config.php を以下のように、ログを出力しない記述に変更しましょう。
// wp-config.phpの記述を以下に変更
define('WP_DEBUG', false);
define('WP_DEBUG_LOG', false);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors', 0);
最後に、LightStartプラグインのメンテナンスモードを解除し、一般の訪問者にもWebサイトが正常に表示されることを確認すれば完了です。
おわりに – AIによる修正は、あくまで暫定的な措置
今回紹介した方法は、開発環境がない状態でもAIを利用してエラーを解消し、暫定的にPHP・WordPressをバージョンアップするためのものです。
そのため、時間があるときに、あらためて以下の対応をすることが望ましいでしょう。
- テーマやプラグインの公式対応バージョンの確認
- 更新停止しているプラグインがあれば代替手段を検討する
- 使用していないプラグインがあれば削除する
- 今後の更新に備えてDockerやテストサーバーなどの検証環境を整備する
特に、長期間更新されていないテーマやプラグインの場合、表面的なエラーを修正しても、別の箇所に脆弱性などの問題が潜んでいる可能性もあります。
AIによってエラー修正のハードルは下がりましたが、安全な運用や修正内容の妥当性を判断することは、依然として人間の役割です。
今回の方法は、開発環境や時間がない状況で、どうしてもバージョンアップを進めなければいけない場合に、選択肢のひとつとして参考にしてください。