COLUMN

「WP-CLI」でWordPressを引越しする方法

「WP-CLI」でWordPressを引越しする方法

このコラムはこんな人におすすめです

  • 容量制限やタイムアウトエラーを気にせず、WordPressのWebサイト(ホームページ)を移行したい方へ
  • 移行時のURL置換で「リンク切れ」や「表示崩れ」を起こさず、安全に作業を終えたい方

「WP-CLI」とは?

WP-CLIとは「WordPress Command Line Interface」の略称です。
WP-CLIを使えばコマンドを入力するだけで、ブラウザを開かずにWordPressを直接操作できるようになります。ブラウザを介さないためタイムアウトによる中断やWEBサイト・ホームページの容量制限に縛られずにWordPressのサイトを移行できます。

WP-CLI

使用する際の注意点

作業を始める前に、以下の事項を確認してください。

  • 事万が一、不具合がおきてもすぐに元に戻せる状態にするため、事前にWordPressのサイトデータやデータベースやのバックアップを保存しておきます。

移行元サイトのデータを書き出す(アウトボート)


① 移行元サーバーのSSH接続を有効にする

本手順では、エックスサーバー(レンタルサーバー)を参考に説明を進めます。

エックスサーバー(レンタルサーバー)管理画面

「SSH設定」の「公開鍵認証用鍵ペアの生成」のパスフレーズを入力し、.keyファイルをダウンロードします。パスフレーズは後ほど使用するのでメモしておきます。

エックスサーバー(レンタルサーバー)公開鍵認証用鍵ペアの生成画面

ダウンロードした鍵(例:server.key)をパソコンの ~/.ssh/ フォルダに移動します。

パソコン フォルダ構成画面

ターミナルを起動し、ファイルの権限を変更します。

サンプルコマンド
chmod 600 ~/.ssh/server.key

~/.ssh/ フォルダにconfigファイルを作成します。 configファイル は、SSH接続を効率化するための設定ファイルです。ホスト名、ユーザー名、ポート番号などの接続情報を事前に記述しておくことで、複雑なオプションを省略し、短いコマンドだけで接続が可能になります。

config ファイルの記述内容

登録名
HostName {接続先のIPアドレスやドメイン}
IdentityFile {ログインに使う秘密鍵のパス}
User {ログインするユーザー名}
Port {接続用のポート番号}
ServerAliveInterval {無操作による接続切れを防ぐ秒数}

他にもSSH接続するサーバーがあれば同じように接続情報を下に追記していく。


② 移行元WordPressサイトのデータベースを書き出す(エクスポート)

SSN接続の準備が整ったので、SSH接続します。 SSH接続のパスワードは、エックスサーバーの「SSH設定」で設定したパスフレーズを入力します。

サンプルコマンド
ssh xserver0001

ssh接続後、cdコマンドを使用し、WordPressがインストールされているディレクトリ(wp-config.phpなど)へ移動し、WordPressサイトで使用しているデータベースをエクスポートします。

サンプルコマンド
wp db export backup.sql

WP-CLIは wp-config を自動で読み取るため、データベース名やパスワードをコマンドで入力する必要がありません。上記コマンドだけで、backup.sql としてデータベースが書き出されます。


③ 移行元サイトのデータを書き出す(エクスポート)

FTPツールや scp コマンドを使用し、WordPressが保存されているディレクトリのデータをダウンロードします。
WordPressを構成するファイルを一つずつ転送すると時間がかかるため、サーバー上で一度、圧縮ファイル(zip)にまとめてからダウンロードを行います。
対象のディレクトリの保存先は親ディレクトリを指定しファイルを圧縮(zip)します。

サンプルコマンド
zip -r ../backup_$(date +%Y%m%d).zip ./

圧縮が完了したら、FTPツールやscpコマンドを使用し、WordPressが保存されているディレクトリのデータをダウンロードします。

サンプルコマンド(SSH接続を解除して実行)
scp -r -P 10022 -i /Users/s0001/.ssh/s0001.key xserver0001@sv0001.xserver.jp:~/s0001.com/backup_20260401.zip /Users/s0001/Downloads

SSH接続のパスワードは、エックスサーバーの「SSH設定」で設定したパスフレーズを入力します。


移行先サイトのデータを取り込む(インポート)


① 新サーバーでWordPressサイト初期設定

エックスサーバーの管理画面へログインしてください。

エックスサーバー(レンタルサーバー)管理画面

「MySQL設定」の「MySQL設定」にて、データベース名を入力し新たにデータベースを追加します。
データベース名は後ほど使用するのでメモしておきます。

エックスサーバー(レンタルサーバー)MySQL設定画面

「MySQL設定」の「MySQLユーザ追加」にて、MySQLユーザID、パスワードを入力し新たにMySQLユーザを追加します。
MySQLユーザID、パスワードは後ほど使用するのでメモしておきます。

エックスサーバー(レンタルサーバー)MySQLユーザ追加画面

「MySQL設定」の「MySQL一覧」にて、先ほど追加したデータベースにアクセス件所有ユーザー(MySQLユーザID)を追加します。

エックスサーバー(レンタルサーバー)MySQLユーザ追加画面

② 新サーバーでSSH接続を有効にする

移行元サイトのデータを書き出す(アウトボート)」で設定したSSH接続の有効化と同様の設定を移行先の新サーバーでも行います。


③ WordPressサイトのデータを取り込む(インポート)

FTPツールや scp コマンドを使用し、WordPressが保存されているディレクトリのデータをアップロードします。

サンプルコマンド
scp -r -P 10022 -i /Users/s0001/.ssh/s0001.key /Users/s0001/Downloads/backup_20260401.zip xserver0001@sv0001.xserver.jp:~/s0001.com/public_html/

SSH接続のパスワードは、エックスサーバーの「SSH設定」で設定したパスフレーズを入力します。
ssh接続しcdコマンドを使用し、アップロードしたディレクトリまで移動し、アップロードした圧縮ファイル(zip)を解凍します。

サンプルコマンド
unzip backup_20260401.zip

解凍が完了したら、新しい環境に合わせてWordPressの wp-config.php を設定します。 1.新サーバーでWordPressサイト初期設定」にてメモしたデータベース名、MySQLユーザID、パスワードを設定します。 インポートするWordPressのデータベースをチェックします。

サンプルコマンド
php7.4 $(which wp) db check

phpのバージョンは、新サーバーのphpバージョンと同じにします。 Successと出れば準備完了です。

WordPressのデータベースをインポートします。

サンプルコマンド
php7.4 $(which wp) db import backup.sql

ドメインも変更になる場合、データベースに記載されているドメイン名を置換します。まずはシミュレーション(--dry-run)します。

サンプルコマンド
php7.4 $(which wp) search-replace 'https://old-site.com' 'https://new-site.com' --dry-run

問題なければ、置換を実行します。

サンプルコマンド
php7.4 $(which wp) search-replace 'https://old-site.com' 'https://new-site.com'

Successと出れば置換完了です。 Elementorなどのプラグインが干渉してエラーが出る場合は、プラグインを読み込まずに置換するオプション(コマンド末尾に[ --skip-plugins])を付けます。

④ WordPressサイトの正常化処理

WordPressサイトの取り込み(インポート)完了直後は、旧環境のリライトルールやキャッシュが残っているため、404エラーや表示崩れ発生する場合があります。以下の手順でWordPressサイトを正常化してください。

移行元サーバーの設定やプラグインの構成データによる不整合を防ぎ、各ページへの接続を正常化するため、リライトルールを再生成します。

サンプルコマンド
php7.4 $(which wp) rewrite flush --hard

データベース内のルール更新に加え、.htaccess ファイルを物理的に書き換えます(Apache環境で必須)。
移行元サーバー環境の一時データによる不具合を防ぐため、キャッシュを初期化して最新の状態を反映させます。

サンプルコマンド
php7.4 $(which wp) cache flush --skip-plugins

ブラウザのシークレットモードを使用し、リンク先のURLに置換漏れがないか、下層ページが正常に表示されるか確認します。
確認後は、アップロードした圧縮ファイル(zip)や データベース(backup.sql)は不要なので削除します。

サンプルコマンド
rm backup_20260401.zip backup.sql

安全なサイト運用のために

WP-CLIを使えば、大規模なサイト移行も驚くほどスムーズに進められます。一方で、慣れないコマンド操作で、予期せぬトラブルが発生することもあります。もし操作に不安を感じる場合は、無理にご自身で進めず制作会社へ相談することも検討してみてください。 SANTABA(サンタバ)デザインでは、WordPressの安全なサーバー移転を代行しております。お気軽にご相談ください

CONTACT

お仕事のご相談やお見積もり、ご不明な点など、 お気軽にお問い合わせください。

ページ内移動