9.

WordPressサイト引越し手順|ファイル・DB・siteurl書き換え・DNS切替

編集
この記事の要点
  • WordPress の引越しは (1) ファイル群(2) データベース(3) 設定書き換えの 3 段階
  • ファイルは wp-content / themes / plugins / uploads も含めて丸ごとコピー
  • DB は phpMyAdmin か mysqldump でエクスポートし、引越し先で新規 DB + ユーザーを作ってインポート
  • wp-config.php の接続情報と、wp_options テーブルの siteurl / home を必ず書き換える
  • URL 内のシリアライズデータは WP-CLI search-replaceBetter Search Replace プラグインで安全に置換する
  • 本番ファイルやデータの削除は厳禁。コピーで作業し、切替後しばらく旧環境を残す

WordPress 引越しの全体像

WordPress を別サーバ・別ドメインに引越すには、大きく分けて 3 つの要素を新環境に移します。どれか 1 つでも漏れるとサイトが正常に動きません。

要素内容移行手段
① ファイル一式WordPress 本体 + テーマ + プラグイン + アップロード画像FTP / SFTP / rsync / zip
② データベース記事・コメント・設定・ユーザー情報phpMyAdmin / mysqldump
③ 設定書き換えDB 接続情報・サイト URLwp-config.php / wp_options / WP-CLI

事前準備

  • 引越し先サーバに WordPress を動かせる環境(PHP / MySQL or MariaDB)があること
  • 引越し先に新しいデータベースとユーザーを作成しておく(データベースの作成 / ユーザーの作成
  • バックアップを取る(プログラム・データベース両方)
  • 引越し直前は本番側で投稿・コメントを止める(メンテナンスモード)

※本番のファイル・データを削除する作業は行わないでください。常に「コピー」で作業し、切替後しばらく旧環境を残します。

STEP 1: ファイル一式を引越し先にコピー

WordPress の設置ディレクトリ(wp-content 含む)をまるごと引越し先にコピーします。SSH が使えるなら rsync が高速です。

# 旧環境で zip 圧縮
cd /var/www/old
tar czf wp-files.tar.gz wordpress/

# 新環境に転送
scp wp-files.tar.gz user@newserver:/var/www/new/

# 新環境で展開
ssh user@newserver
cd /var/www/new
tar xzf wp-files.tar.gz

FTP 派なら、FileZilla 等でwp-content フォルダごと丸ごとダウンロード → 引越し先にアップロードします。wp-content/uploads は画像・PDF が大量にあると時間がかかるので、SFTP/rsync 推奨です。

STEP 2: データベースをエクスポート → インポート

引越し元から取得

phpMyAdmin が使えるなら GUI でエクスポート、SSH が使えるなら mysqldump が高速です(ターミナルからの実行方法は エクスポートおよびインポート を参照)。

# 旧環境
mysqldump -u olduser -p old_wp_db > old_wp.sql

# 新環境に転送
scp old_wp.sql user@newserver:/tmp/

引越し先にインポート

引越し先に新規 DB とユーザーを作ったうえで、エクスポートした SQL を流し込みます。

mysql -u newuser -p new_wp_db < /tmp/old_wp.sql

STEP 3: wp-config.php の修正

DB の接続情報が変わった場合は wp-config.php を書き換えます。

// wp-config.php
define( 'DB_NAME',     'new_wp_db' );
define( 'DB_USER',     'newuser' );
define( 'DB_PASSWORD', '****' );
define( 'DB_HOST',     'localhost' );

// セキュリティキーも環境ごとに変えるのが望ましい
// (ログインセッションが切れるが、安全)

STEP 4: サイト URL(siteurl / home)の書き換え

ドメインも変わる場合、wp_options テーブルの siteurlhome を新 URL に変更しないと、旧 URL にリダイレクトされる、CSS が読み込めないなどの不具合が発生します。

UPDATE wp_options
SET option_value = 'https://new.example.com'
WHERE option_name IN ('siteurl', 'home');

STEP 5: 本文中の URL をシリアライズ対応で置換

記事本文・ウィジェット・カスタマイザ設定など、あちこちに古い URL がハードコードされています。さらに WordPress の wp_options や postmeta にはシリアライズ済みの配列に URL が混ざっており、単純な UPDATE ... REPLACE で書き換えるとデータが壊れます

専用ツールを使うのが安全です。

ツール方法
WP-CLIwp search-replace 'https://old.example.com' 'https://new.example.com' --all-tables
Better Search Replace プラグイン管理画面から GUI で実行(Dry Run 可)
Search Replace DB(スクリプト)PHP スクリプトを設置して GUI から実行
# WP-CLI で全テーブルを安全に書き換え(dry-run で事前確認)
wp search-replace 'https://old.example.com' 'https://new.example.com' --dry-run
wp search-replace 'https://old.example.com' 'https://new.example.com' --all-tables

STEP 6: 動作確認

DNS を切り替える前に、hosts ファイルで新サーバの IP に向けて動作確認するのが安全です。

# Windows: C:\Windows\System32\drivers\etc\hosts
# Mac/Linux: /etc/hosts
203.0.113.10  new.example.com
  • トップページが表示されるか
  • 固定ページ / 記事のパーマリンクが機能するか(だめなら管理画面で「設定 → パーマリンク」を保存し直す)
  • 画像が表示されるか
  • 管理画面にログインできるか
  • お問い合わせフォーム等の送信動作

STEP 7: DNS 切替 + 旧環境の保持

動作確認が終わったら DNS の A レコード or CNAME を新サーバに向けます。TTL の伝播を考慮して少なくとも 1〜2 週間は旧サーバを残しておくのが鉄則です。絶対に旧サーバを即座に削除しないこと — キャッシュや古い DNS で旧サーバにアクセスしてくるユーザーがいるためです。

よくあるトラブル

症状原因と対策
無限リダイレクトsiteurl / home が旧 URL のまま、もしくは HTTPS / HTTP の不一致
記事内画像が表示されない本文中の URL が旧ドメインのまま → search-replace で置換
固定ページが 404パーマリンク設定を再保存(.htaccess や Nginx 設定の再生成)
管理画面に入れないwp-config.php の認証キー設定ミス、または wp_options.siteurl の不整合
テーマカスタマイズが消えるシリアライズ非対応の書き換えで壊れている可能性。バックアップから復旧

関連

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. インストール方法(Ubuntu + Apache)
  2. Wordpressのインストール方法
  3. ローカル環境への導入方法
  4. PHPの使用方法
  5. DB設定
  6. DB接続方法
  7. index.phpをURLに含めないようにする方法
  8. コメントに絵文字を入力可能にする方法
  9. サイト(ドメイン)の引越し方法
  10. 独自の関数一覧
  11. エラー一覧
  12. Wordpressの一連の処理の流れ

最近更新/作成されたページ