WordPressのバックアップとサーバー移転

  • このエントリーをはてなブックマークに追加

All-in-One WP Migration を使用してインポートしつつ移転しますが、バックアップは手動でも行いました。

運用中のサイトに移転する場合、一度データベースとコアファイルなどを削除してアップロードする方法を取っています。

移転の手順としては「運用中サイト、開発環境のバックアップ」->「運用中サイトを初期化」->「All-in-One WP Migrationで移転」となります。

バックアップを取る

運用中のサイトとテスト環境のファイルとデータベースのバックアップを取ります。

ファイルのバックアップ

全てのファイルのバックアップを取ります。.htaccess, themeフォルダ, uploadsフォルダ, pluginsフォルダだけ取っておけば問題ないかもしれませんが、ワードプレスのバージョンが移転元と移転先で異なる場合、移転元のバージョンに合わせる必要があるので、バックアップは必ず必要です。

色々方法はありますが、FTPで取ってきました。

All-in-One WP Migration を使って移転してみたものの fatal error undefined function wp_… is not defined. のようなエラーが出て全然先に進めなかったりします。古いバージョンのワードプレスにない関数があるため。

データベースのバックアップ

phpmyadminにログインして、ワードプレスのテーブルがあるデータベースをエクスポートします。画像付きで確認できるので、本家のマニュアルを覗くとわかりやすいです。


1. サーバー上の phpMyAdmin にログインする。

2. 左ウィンドウで、WordPress データベースを選択する。ここでは「wp」というデータベースを使っていることとします。

3. 右ウィンドウに WordPress データベースに含まれるテーブルの一覧が表示されます。上のタブメニューで「エクスポート」を選択する。


4. 「簡易」オプションが選択されていることを確認して、「実行」をクリックする。すべてのテーブルが SQL 形式でエクスポートされます。エクスポートされたファイルを保存してください。

データベースのバックアップ

All-in-One WP Migrationでバックアップ

「プラグイン」>「新規追加」でダウンロードするか、All-in-One WP Migrationのページからファイルをダウンロードして、移転先のWPにアップロードする。

All-in-One WP Migrationでファイルをインポートするとき、同プラグインでエクスポートしたファイルの名前を変えると上手くいきませんでした。

無料で使用できる上限のファイルサイズがあるので、uploadsフォルダは含めずにエクスポート。uploadsフォルダはFTPで手元に用意。

運用中のサイトを初期化する

続いて運用中のサイトの初期化です。ワードプレスをインストールしたばかりのサイトで、移転元とワードプレスのバージョンが同じなら、何もすることがないです。

データベースの初期化

phpmyadminを開いてwordpress関連のテーブルをすべて削除します。空にするのではなくて削除します。削除した後にサイトにアクセスすると、ワードプレスの機能でデータベースを再構築する手順を進められます。初めてインストールした時と同じ画面です。

ファイルの初期化

pluginsやuploads, themesフォルダはindex.phpを除いて空にしておきます。

All-in-One WP Migrationで移転

移転先にこのプラグインをダウンロードして、インポートしますが、まずワードプレスのコアファイルを移転元と揃えます。バージョンが違うために関数にエラーが出るなどの問題があると、正常にプラグインが作動しないことがあります。

移転元のルートディレクトリにあるwp_xxx.phpファイル、wp-adminフォルダ、wp-includesフォルダを移転先にFTPで転送します。事前に移転先の該当フォルダやファイルは削除しておく。

移転先のwp-config.phpのデータベース情報は、新しいサイトで使うデータベースと紐づけておく。

続いて /wp-content/uploads/ の移転元にあったファイルをFTPで移転先にアップロード。

ここまで来たら管理画面のプラグインからインポートします。

「Permalinks Settings」をクリックしてログイン画面に遷移する。移転元のログイン情報を入力するとログインできます。その後、パーマリンク設定画面で保存するを二回クリック。

ログインユーザーとパスワードが変更されているので、管理画面の「ユーザー」からユーザーのパスワードを修正する。

IDは管理画面で修正できないので、phpmyadminを開いて、wp_usersテーブルの該当レコードで直接アップデートする。

「設定」>「一般」を開いて、「WordPress アドレス (URL) 」、「サイトアドレス (URL)」、「メールアドレス」に問題がないか確認する。

サイトを閲覧して動作や表示に問題がないか確認して終了。

初期化せずデータベースを引き継いで差分のみアップデート

WinMergeを使用して、SQLファイルの差分を取って、データベースをアップデートします。

「All-in-One WP Migration」を使用すると、サイトのデータベースからテーマファイルまで一括で上書き可能なのですが、差分だけを反映させるのはできないはず。

その場合、SQLファイルの差分を取って、UPDATE文、INSERT文を用意して、プラグインの設定のみを移転先に適用します。以下の手順で作業します。

  1. ワードプレスのコアファイルを移転元に持ってくる。
  2. 移転先のSQLファイルをエクスポート。
  3. そのSQLファイルを移転元のDBにインポート。
  4. 移転元でプラグイン設定のなどを完成させる。
  5. 移転元サイトのSQLファイルをエクスポート。
  6. WinMergeで、エクスポートした移転先と移転元のSQLファイルの差分を取る。
  7. 差分を埋めるようにINSERT, UPDATE文を調整する。
  8. 移転先に差分のSQLファイルをインポートする。
  9. おわり。

エクスポートされたSQLファイルの記述形式が異なり、改行のあるなしで差分が発生するかもしれませんので、そのあたりはSQLをチェックします。

インポートするテーブルは、wp_optionswp_postmetawp_posts辺りになるかと思います。wp_postsはカスタムフィールドのデータが入っていたりします。

レンタルサーバwpx使用上の注意

サブディレクトリにWPをインストールしたり、移動させたりできない。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す