制作・運用の現場で最も焦るトラブルが、突然の白画面(WSOD)、500 Internal Server Error、そして「データベース接続確立エラー」です。本記事では、原因の切り分けから一次復旧、恒久対策までを実務でそのまま使える手順として体系化します。結論から言えば、最短経路は「止める→見る→特定→戻す」の順です。まずは被害拡大を止め、ログや構成を見て、原因コンポーネントを特定し、暫定/恒久の戻し方を決めます。
一次対応:影響を最小にしつつ画面を復旧する
- キャッシュ層の全クリア:サーバーキャッシュ(LiteSpeed/NGINX)、プラグイン(WP Rocket/LiteSpeed Cache 等)、CDN(Cloudflare等)を一旦無効化。キャッシュが誤ったレスポンスを供給しているケースは少なくありません。
- プラグイン強制停止:FTP/ファイルマネージャーで
wp-content/pluginsをplugins-offにリネーム。画面が戻ればプラグイン起因が濃厚。戻した後は1つずつ有効化し直し、直近に更新したもの・新規導入したものから疑うのが効率的です。 - テーマ切替:
wp-content/themesで子テーマを一時退避し、Twenty Twenty系などのデフォルトテーマを有効化。functions.php の記述ミスや親テーマ更新との不整合で落ちる例は多発します。 - デバッグログ:
wp-config.phpに以下を追記し、wp-content/debug.logを確認。致命的エラーのファイル/行番号/スタックトレースから原因を突き止めます(本番表示はWP_DEBUG_DISPLAYをfalseに)。
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
よくある原因と即応テクニック
- functions.php の記述ミス(最頻出):経験上、白画面や致命的エラーの約8割は functions.php の変更が原因です。特に直前に何かを修正・追記した直後に発生するケースが多数。
チェック手順:- 子テーマを一時無効化(デフォルトテーマへ切替)し画面が戻るか確認。
- 該当ファイルを
php -l functions.phpで構文チェック(ローカルでも可)。セミコロン漏れ、括弧や波括弧の不一致、余計な?>後の空白出力、BOM 付き保存に注意。 - 無名関数/フックの引数個数の不一致、存在しない関数・クラス呼び出し、PHP8.xで厳格化された型関連の警告→致命化への波及を確認。
- 最近の差分を最小単位で巻き戻し、再現ポイントを特定(Git導入推奨)。
- .htaccess破損:管理画面 → パーマリンク設定を再保存すると再生成されます。入れ子ディレクトリやマルチサイトでは記述の抜けに注意。
- PHPメモリ不足:
wp-config.phpにdefine('WP_MEMORY_LIMIT', '256M');。プラグインの画像最適化/ビルダー系は峰打ちでメモリを使うため、状況により512Mも検討。 - PHPバージョン非互換:7.4→8.x 移行で未定義の配列キー/型宣言/Deprecated対応が未了のテーマ・プラグインが落ちます。ステージングで互換性を事前確認。
- DB接続失敗:
wp-config.phpのDB_NAME/DB_USER/DB_PASSWORD/DB_HOSTを再点検。ホスト名のソケット指定、接続上限、権限周りはホスティングごとに作法が違います。
WP-CLIが使えるなら高速復旧
# すべてのプラグイン停止(画面に入れなくても操作可)
wp plugin deactivate --all
# デフォルトテーマへ
wp theme activate twentytwentythree
# コア整合性確認
wp core verify-checksums
# 直近更新プラグインの洗い出し
wp plugin list --field=name --status=active
恒久対策:再発させない運用に寄せる
- ステージング必須化:本番直更新をやめ、検証→バックアップ→反映をルーチン化。
- ロールバック手順の整備:プラグイン/テーマの以前バージョンやバックアップからの迅速復元を文書化。担当交代でも迷わない運用に。
- 監視と通知:エラーログ/アクセスログ/WAFの異常値をSlack/メールに通知。気づける体制が品質を決めます。
ポイントは「止める→見る→特定→戻す」。焦って全更新や闇雲な削除を行うと復旧が長引きます。特に直前の functions.php 変更は最初に疑い、差分最小で戻すのが最短です。作業ログを残し、再発防止の学びに変えましょう。
