[wp] wordpressを丸ごと移管/移行させる手順

お引越ししないといけなくなりまして・・・

とある理由でwordpressを丸ごと別のサーバに移管したり乗り換えたり、つまりお引越をさせないといけない場面は多々あります。既に稼働しているwordpressをスムーズに移行させるには下記の手順がベストです。カテゴリやプラグイン等々の再設定も行う必要ないので楽に移行できます。

wordpress移行前の準備、旧サーバから必要なファイルを揃える

1:旧サーバデータベースを丸ごとエクスポートする

phpMyAdmin等からwordpressが入ってるDBを丸ごとダンプしておく。
(※右図はphpMyAdminのエクスポート画面)

2:旧サーバからファイル一式をダウンロードする

FTP等でwordpress関連のファイル全てをダウンロードしておく。

新サーバにwordpress移行する手順

3:新サーバにファイルを丸ごとアップロードする

旧サーバからダウンロードしたwordpress関連のファイル一式を新サーバの任意のディレクトリにアップロードし、必要に応じて /wp-contents/uploads/ や /wp-contents/cache/ などパーミッションの変更が必要なディレクトリは777等に変更する。
(サーバによって数値は変わります)。

4:MySQLデータベースを作成する

新サーバで新規にMySQLデータベースを作成する。

6:wordpressの設定ファイルの必要な情報を変更する

/wp-config.php をDB作成時に設定したDBネームやパスワード、ホスト等に変更します。(下記の箇所)

/** WordPress のデータベース名 */
define('DB_NAME', '○○○○');
/** MySQL のユーザー名 */
define('DB_USER', '○○○○');
/** MySQL のパスワード */
define('DB_PASSWORD', '○○○○');
/** MySQL のホスト名 (ほとんどの場合変更する必要はありません。) */
define('DB_HOST', '○○○○');

7:wordpress管理画面に接続出来ているかを確認する

ブラウザからwordpressのトップページを参照し、インストール画面が出てくれば接続は出来ています。

8:旧サーバのDBからエクスポート(ダンプ)したデータを丸ごとインポートする

インポートにはphpMyAdminやNavicat等のツールを使うと便利。
(右図はphpMyAdminのインポート画面)

9:wordpress管理画面のログインID/パスワードを変更する

インポート出来たら『wp_user』テーブルのadmin権限のパスワードを変更します。(右図参照)

変更するカラムはadmin権限のユーザで下記の2カラムです。
『user_pass』カラム を $P$B9f/Y7GWy4FzX5uuccAbvJxWDGVdHl0に変更。
(パスワード adminadminでログイン出来る様になります)
『user_email』カラムを 任意のメールアドレスに変更。

詳しくは割愛しますが $P$B9f/Y7GWy4FzX5uuccAbvJxWDGVdHl0 という謎の文字列でパスワード adminadmin でログイン出来る様になっています。

この変更は前任者と管理が変わる場合は特にに重要になります。

10:wordpressのURLを変更する

『wp_options』テーブルの『option_name』→『siteurl」に記載されているURLを新サーバのURLに変更します。
テスト段階ですのでテスト専用のURLがあると思います。それを入れておきますが、新サーバにDNSを切り替えた際にはここを再度変更します。

11:wordpressトップページを参照して無事に旧サーバと同じ状態で表示されているか確認する

ブラウザからwordpressのトップページを参照して確認します。
この段階ではインストール画面が表示されたり、エラーが出ていたりする場合はDBの見直しが必要です。

12:wordpress管理画面にログイン出来るか確認する

ログインID『admin』、パスワード『adminadmin』でログイン出来るか確認する。

13:投稿出来るか確認する

管理画面にログインできたら、特に画像のアップロードなど確認しましょう。

ついでにadmin権限のパスワードが『adminadmin』になっているので変更しておきましょう。

基本的には以上ですが下記に補足を。。

記事内のリンクURLを直す

記事内の画像リンクが絶対パスで指定されてい場合が多くあるので右図のプラグイン「Search Regex」を使って一括置換してあげましょう。

プラグイン:Search Regex

※「Regex」にチェックを入れる事で正規表現が使えます。

実作業ではwordpress全データをDBにインポートする前に全置換してしまう方が早いですが、こういったメンテナンス系のプラグインを使うというのも一つの手もはあります。

またはSQL文を使って置換する事も出来ます。

SQL文

UPDATE `テーブル名` SET フィールド名A=REPLACE (フィールド名A,"置換前の文字列","置換後の文字列");

記述例

・テーブル名:dtb_customer
・フィールド名/カラム名:uname
・置換前の文字列:山田
・置換後の文字列:鈴木

UPDATE `dtb_customer` SET uname=REPLACE (uname,"山田","鈴木");

・テーブル名:wp_options
・フィールド名/カラム名:option_value
・置換前の文字列(http://AAAA.jp)
・置換後の文字列(http://BBBB.jp)

UPDATE `wp_options` SET option_value=REPLACE (option_value,"http://AAAA.jp","http://BBBB.jp");

で、具体的には下記を実行すればOKです。

wordpressで必要なURL置き換えの記述例

UPDATE `wp_options` SET option_value=REPLACE (option_value,"http://【移行前のドメイン】","http://【移行後のドメイン】");
UPDATE `wp_posts` SET guid=REPLACE (guid,"http://【移行前のドメイン】","http://【移行後のドメイン】");
UPDATE `wp_posts` SET post_content=REPLACE (post_content,"http://【移行前のドメイン】","http://【移行後のドメイン】");
UPDATE `wp_postmeta` SET meta_value=REPLACE (meta_value,"http://【移行前のドメイン】","http://【移行後のドメイン】");
UPDATE `wp_redirection_logs` SET referrer=REPLACE (referrer,"http://【移行前のドメイン】","http://【移行後のドメイン】");

Similar posts