WordPress 6.9→7.0へのアップグレードで失敗し、真っ白画面になった際の対処記録
何があったか
当サイトが落ちた。
何をしたのか。WordPressを6.9系から7系へ管理画面からアップグレードを試みた。
その際、メンテナンス中という表示しか出なくなっため、いつも通りWordPress導入先フォルダ直下に作成される「.maintenance」ファイルを消したが、WordPressに何らかの異常が生じているためか、このサイトが真っ白な画面になり閲覧不能となる障害が発生した。
AIによる本記事の要約
WordPressを6.9系から7系へ管理画面からアップグレードした際、サイトが真っ白な画面になり閲覧不能に。nginxのエラーログを確認すると、関数の重複定義とnullオブジェクトへのメソッド呼び出しという2件の内部エラーを検出。原因はアップデート失敗によるコアファイルの新旧混在。手動でwp-adminとwp-includesを最新版に上書きすることで復旧。バックアップとステージング環境の重要性を再認識した障害対応の記録。
どう対処したか
- nginxのエラーログを確認
- 手動でWordPressのアップデートを実行
nginxのエラーログ確認
/var/log/nginx配下に出力されるnginxのエラーログを確認したところ以下のエラーが記録されていました。
489 2026/07/18 15:01:07 [error] 1071#1071: *25 FastCGI sent in stderr: "PHP message: PHP Fatal error: Cannot redeclare function wp_sanitize_script_attributes() (previously declared in /var/www/ wordpress/wp-includes/deprecated.php:6521) in /var/www/wordpress/wp-includes/script-loader.php on line 2875; PHP message: PHP Fatal error: Uncaught Error: Call to a member function set() on null in /var/www/wordpress/wp-includes/l10n.php:857
490 Stack trace:
491 #0 /var/www/wordpress/wp-includes/l10n.php(960): load_textdomain()
492 #1 /var/www/wordpress/wp-includes/class-wp-fatal-error-handler.php(49): load_default_textdomain()
493 #2 [internal function]: WP_Fatal_Error_Handler->handle()
494 #3 {main}
495 thrown in /var/www/wordpress/wp-includes/l10n.php on line 857" while reading response header from upstream, client: 133.32.217.104, server: sysrigar.com, request: "GET / HTTP/2.0", upstrea m: "fastcgi://unix:/var/run/php/php8.4-fpm.sock:", host: "sysrigar.com"
WordPressの管理画面からのアップデートが何らかの理由で失敗した結果、
2件の内部エラーが発生し、WordPressが落ちている。
- 関数の重複定義エラー
- nullオブジェクトに対してsetのメソッドの呼び出し
対応法方針をAIに以下の通り泣きついた。
WordPressを6.9から7系へアップグレードを実行したが、何らかのエラーとなったのか、サイトにアクセスしても真っ白な画面しか表示されなくなった。nginxのerror.logを確認すると、以下のログが出力されていた。事態打開のためご支援ください。
AIより対応方針として、wp-adminおよびwp-includesディレクトリを対象バージョンの正規ファイルで完全に上書きし、コアファイルの整合性を復旧させる旨の回答があった。
手動でWordPressのアップデートを実行
現行のWordPressフォルダ一式を全てバックアップします。
zip -r wrk#wordpress_20260718.zip /var/www/wordpress/
続きまして最新のWordPressをダウンロードして解凍します。
mkdir /tmp/wrk20260718
cd /tmp/wrk20260718
wget https://ja.wordpress.org/latest-ja.zip
unzip latest-ja.zip
解凍後のフォルダ内にある各種フォルダをコピーします。
cd /tmp/wrk20260718/wordpress cp -r wp-admin/ /var/www/wordpress/. cp -r wp-includes/ /var/www/wordpress/. cp *.php /var/www/wordpress/.
終わりに
WordPressのアップデートは比較的正常に動くことが多かったため、油断していました。
AIに何か教訓的なものを書いてもらうと以下でした。
今回の教訓として、大型アップデート時はステージング環境での事前検証や、WP-CLIによるwp core updateの活用が有効です。また、アップグレード前後でのバックアップ取得を徹底することで、同様の障害発生時にも迅速な復旧が可能になります。
当サイトにはステージング環境はなく、ぶっつけ本番で2017年ごろから運用しており、この本番一発勝負という伝統芸能を途絶えさせてはならないと強く実感しました(冗談です)。