WordPressサイトのバックアップからの復元作業は、万一の障害に備える上で欠かせないプロセスですが、実際に復元を行うと「インポート時にタイムアウトが発生した」「ファイルを上書きしたらレイアウトが崩れた」「ドメインを変更したら画像が表示されない」といったトラブルに直面しがちです。本記事では、復元時によくある失敗例をQ&A形式でピックアップし、エラーメッセージ例や具体的な操作手順(php.ini の設定調整や検索置換プラグインの使い方など)を交えながら解説。万一のトラブルにも即対応できるノウハウを提供し、自社での復元作業に安心感を与えるとともに、必要に応じて専門サポート検討への橋渡しも行います。
復元前の前提確認とバックアップ環境の整備
WordPressの復元作業において最も重要なのは、事前準備と環境の整合性確認です。ここをおろそかにすると、その後のすべてのステップで思わぬエラーやデータ不整合が発生しやすくなります。
バックアップを取得した時点のPHP/MySQLバージョンやファイル構造が現在のサーバー環境と合致しているかをしっかり確認しましょう。バージョン差異が原因で、プラグインやテーマが動作不良を起こしたり、データベースのエクスポート・インポート時に互換性エラーが発生するリスクがあります。
バックアップファイルのフォーマットと整合性チェック
結論:バックアップファイル(.sql/.zip/.tar.gzなど)は、必ず取得元と同じ形式で保存し、ファイル破損がないかチェックサム(MD5/SHA-256)の検証を行うことで、後のリストア時の失敗を未然に防げます。
理由:ネットワーク転送やサーバー上での圧縮・解凍処理時に、ファイル破損や不完全な書き出しが起こることがあります。特に大容量のデータベースやメディアファイルを含むバックアップでは、部分的な欠損が見落とされやすく、後のインポート時に「途中で止まる」「文字化けが起きる」といったトラブルを招きます。
具体例:md5sum backup.sql
→ MD5 値を記録し、転送後に再度チェックtar tzf backup.tar.gz
や unzip -t backup.zip
でテスト解凍
手順:
1. バックアップ取得直後にサーバでチェックサムを生成し、ログとして残す
2. 別環境へファイルを転送後、同じコマンドでチェックサムを検証
3. 圧縮ファイルの場合、リスト表示やテスト解凍を実施
4. 問題があれば再度バックアップを取り直し、検証手順を繰り返す
サーバー環境のPHP/MySQLバージョン確認
結論:復元先のサーバー環境が、バックアップ取得時と同等または互換性のあるPHPおよびMySQL(MariaDB)のバージョンであることを確認することで、プラグインやテーマの動作不良を回避できます。
理由:WordPressコアやプラグインは、特定のPHP機能やMySQLの構文を前提としています。たとえば、PHP 7.4で動作していたプラグインがPHP 8.1で非推奨関数を使用している場合、致命的なエラーを起こす可能性があります。また、MySQLの文字セットや照合順序の違いにより、文字化けや検索置換失敗を引き起こすリスクもあります。
具体例:php -v
でPHPバージョン確認mysql --version
でMySQLバージョン確認SHOW VARIABLES LIKE 'character_set_%';
で文字セット確認
手順:
1. SSHでサーバにログインし、php -v
とmysql --version
を実行
2. バージョンが異なる場合、コントロールパネルでPHPバージョン切替を検討
3. MySQL文字セットがUTF-8以外の場合、バックアップエクスポート時に--default-character-set=utf8mb4
を使用
4. ドキュメント化し、チェックリストとして活用
データベースインポート時のタイムアウト・接続エラー対策
大容量のSQLファイルをインポートする際、タイムアウトや接続切断エラーは最も頻繁に発生するトラブルの一つです。以下の方法で、事前に設定を見直し、確実にインポートを成功させましょう。
php.ini設定の調整でタイムアウト解除
結論:php.ini
のmax_execution_time
とmemory_limit
、およびupload_max_filesize
やpost_max_size
を増加させることで、長時間のスクリプト実行や大容量ファイルのアップロードを可能にします。
理由:デフォルト設定では、PHPスクリプトの実行時間が30秒、メモリ上限が128MBに制限されているホスティングが多く、大きなデータベースを処理するには不十分です。また、アップロード制限が低いと、500MB以上のダンプファイルを扱えません。
max_execution_time = 300 ; スクリプト実行時間を5分に延長
memory_limit = 512M ; メモリ上限を512MBに増加
upload_max_filesize = 512M ; ファイルアップロード上限を512MB
post_max_size = 512M ; POST時のデータ上限を512MB
手順:
1. サーバーのphp.ini
を開く(共有ホスティングの場合、.user.ini
や.htaccess
で設定可能か確認)
2. 上記の項目を探し、必要に応じて値を増やす
3. PHP-FPMやApacheを再起動し、設定変更を反映
4. phpinfo()
を使用して、実際に設定が反映されているか確認
WP-CLIを使ったコマンドラインでのインポート
結論:WP-CLIのwp db import
コマンドを使うことで、Webインターフェースの制限を回避して、安定的に大容量SQLファイルをインポートできます。
理由:Webベースのツール(phpMyAdminなど)はブラウザのタイムアウトやファイルサイズ制限に影響されますが、SSH経由のWP-CLI操作ならこれらの制限を受けずに実行可能です。
# バックアップSQLファイルをインポート
wp db import /path/to/backup.sql
手順:
1. サーバーにSSH接続し、WordPressルートディレクトリに移動
2. wp --info
でWP-CLIが動作するか確認
3. wp db import backup.sql
を実行
4. wp db check
で整合性検証
ファイル上書き後のデザイン崩れとパス不一致トラブル解消
復元作業でファイルを上書きすると、テーマやプラグインのパスが変わり、CSSや画像リンク切れによるデザイン崩れが起こります。パスの不一致を適切に修正しましょう。
テーマ・プラグインファイルのパス確認
結論:復元後は、wp-content/themes/
およびwp-content/plugins/
のフォルダ構成がバックアップ時と同一か確認し、不足ファイルがないかチェックします。
手順:
1. SSHまたはFTPでテーマ・プラグインフォルダを一覧表示
2. バックアップ時のファイルリストと比較
3. 欠落ファイルがあれば再アップロード
4. ブラウザの開発者ツールで404エラーのリソースがないか確認
検索置換プラグインでの相対/絶対パス修正
結論:「Better Search Replace」などのプラグインを用い、相対パスや絶対パスのURLを一括で置換することで、リンク切れを迅速に解消できます。
手順:
1. プラグイン「Better Search Replace」をインストール・有効化
2. 「Search for」に旧URLを、「Replace with」に新URLを入力
3. テーブルを全選択し、Dry Runで置換数を確認
4. Dry Runをオフにして本番置換
5. キャッシュプラグインのクリア
ドメイン変更によるURLリンク切れと画像表示エラー対応
WordPressサイトを移転する際にドメインを変更すると、内部リンクや画像パスが旧ドメインのまま残り、リンク切れや画像非表示を引き起こします。以下の手順で確実に置換しましょう。
Better Search Replaceプラグインでの一括置換
結論:「Better Search Replace」プラグインを使い、データベース内の旧ドメインURLを新ドメインに一括置換することで、リンク切れや画像参照エラーを瞬時に解消できます。
手順:
1. 管理画面からプラグインをインストール
2. 「Search for」に旧ドメイン、Replace withに新ドメインを入力
3. Dry Runで変更件数を確認
4. 本番実行、キャッシュクリア
.htaccessリダイレクト設定とSSL化後の注意点
結論:旧ドメインへのリクエストを新ドメインへリダイレクトし、SSL化後はhttps強制も行うことでSEO評価とユーザー体験を維持できます。
# ドメイン変更リダイレクト
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-site\.example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.old-site\.example\.com$
RewriteRule ^(.*)$ "https\:\/\/new-site\.example\.com\/$1" [R=301,L]
# SSL強制
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
手順:
1. .htaccessをバックアップ
2. コードを追加
3. 動作確認
4. Mixed Contentチェック
復元後に発生しやすいFatal Errorとデバッグモード活用
復元作業後に「Fatal error」などの致命的エラーが発生することがあります。原因を特定し、迅速に復旧するためのデバッグ手法を解説します。
WordPressリカバリーモードの活用
結論:WordPress 5.2以降で導入されたリカバリーモードを利用すると、管理者メールから問題のあるプラグイン・テーマを一時的に停止し、管理画面復帰が可能です。
手順:
1. 管理者メールのリンクをクリック
2. 問題プラグインをDeactivate
3. 有効化テストで原因特定
error_log確認とPHPメモリ制限調整
結論:WP_DEBUG
とWP_DEBUG_LOG
を有効化し、debug.log
でエラーログを確認した上で、memory_limit
を調整すると、Fatal Error解消に役立ちます。
// wp-config.php
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
手順:
1. デバッグ設定追加
2. debug.logを確認
3. memory_limit増加
プラグイン・テーマ復元時の互換性エラーと対策
復元作業では、プラグインやテーマのバージョン差が原因で互換性エラーが発生します。安全に復元するための手順を紹介します。
Gitによるバージョン管理を用いた安全な復元フロー
結論:Gitリポジトリを利用し、復元前後のファイル差分を管理することで、ロールバックや変更箇所の可視化が可能になります。
git init
git add wp-content/themes/mytheme
git commit -m "初期状態"
git add .
git commit -m "バックアップ復元適用"
手順:
1. リポジトリ初期化
2. コミットして差分管理
段階的有効化テストで互換性を確認
結論:プラグインやテーマを一度に全有効化せず、少しずつ有効化して動作確認を行うことで、エラー原因を特定しやすくなります。
手順:
1. 全プラグイン・テーマを復元後、一旦無効化
2. 一件ずつ有効化してテスト
3. 問題発生時に原因特定
まとめ
本記事では、WordPressバックアップ復元時に頻発するタイムアウトエラー、デザイン崩れ、リンク切れ、Fatal Error、互換性エラーなどの典型的トラブルを、具体手順とツール紹介を交えて解説しました。今すぐ行うべき理由は、万一の障害時に迅速に復元対応し、サイト停止時間を最小限に抑えることでビジネス機会の損失を防ぐためです。バックアップ復元は難易度が高いと感じられますが、事前準備→設定調整→段階的テストのフローを踏めば、初心者でも安全に実施可能です。さらに複雑なトラブル時は、専門サポートの利用も検討しましょう。