WordPressのまるごとコピー、移行方法

WordPressのまるごとコピー、移行方法

WordPress の利用は、レンタルサーバーのアピールポイントのひとつになっています(多分…)ので、どのサーバーでもインストールや移行ツールを用意していると思います。現在利用している Xsever でも「簡単インストール」「簡単移行」があります。

通常はそれらで問題ないのですが、あれこれ手動でディレクトリやデータベースを触るような作業をしますとかえって問題が発生したりします。そこで、大した作業ではありませんので手動で WordPress をまるごとコピーしようと思います。

01WordPress サイトコピーは使えない…

Xsever の「WordPress 簡単移行」に問題があるわけではありません。ただ、ドメインとデータベースが紐付いたまま履歴に残るというだけです。通常は問題はありませんが、次のような事例があるというだけです。

ところで、Xserver では、昨年4月に「WordPress サイトコピー」という機能が追加されたようです。この記事を書こうと思うまで知りませんでしたので、何だ、そんな機能があったんだと思い調べてみましたら、この機能は「WordPress 簡単インストール」を使ってインストールした WordPress しかコピーできません。

「WordPress 簡単移行」で他のレンタルサーバーからコピーしたり、独自にインストールした WordPress はコピーできません。つまり、メニューの「簡単インストール」で

現在、「(ドメイン名が入る…)」ドメインには「簡単インストール」機能から追加されたWordPressはありません。

と表示される場合はコピーできないということです。なぜなんでしょうね。

02手動で WordPress まるごとコピー

WordPress は、ドメインに紐付けられたディレクトリ内のシステムとデータベースで構成されていますので、次の2点に整合性が取れていれば稼働します。

  • ドメイン直下の wp-config.php 内のデータベース情報が正しいこと
    wp-config.php は、通常 public_html に保存されている
  • ドメイン名と一般設定の「WordPress アドレス (URL)、サイトアドレス (URL)」が一致していること
    データベースのテーブル wp-options のレコード siteurl, home に保存されている

あとは管理画面にログインできるユーザー名とパスワードがあれば管理可能になります。

データベースの作成

新規にデータベースを作成します。Xserver の場合ですがどのレンタルサーバーでもこれができないことはありません(笑)。

データベース名を入力し、確認画面で作成します。

Xsever の場合は、タブの「MySQLユーザ追加」でユーザを作成し「MySQL一覧」に戻って「アクセル権未所有ユーザ」の追加をクリックします。すでにあるユーザにアクセス権を与えてもいいです。

コピー元データベースのエクスポート、コピー先データベースへのインポート

データベースのコピーには phpMyAdmin を使います。

コピー元のデータベースをまるごとエクスポートします。

コピー先のデータベースを選択し、エクスポートしたファイルを指定してインポートします。

WordPress アドレス (URL)、サイトアドレス (URL) の書き換え

続いて、phpMyAdmin で、コピー先のデータベースのテーブル wp-options を選択し、siteurl, home をコピー先のドメイン名に書き換えます。

WordPress システムのコピー

レンタルサーバーに ssh でログインするか、レンタルサーバー付属のファイルマネージャで、コピー元のドメイン直下、通常は public_html 内のディレクトリとファイルをすべてコピー先のドメイン直下にコピーします。通常はすでに public_html ディレクトリがありますので上書きできるのであれば上書きします。上書きできないのであれば、先に削除しておいたほうが簡単です。

Xserver のファイルマネージャの場合は、すでに public_html があれば、public_html – copy ディレクトリが作成されコピーされます。

wp-config.php の編集

ファイルマネージャでドメイン直下の wp-config.php を開きデータベース情報を書き換えます。

DB_NAME, DB_USER, DB_PASSWORD を最初にデータベースを作成した際のものに書き換えます。

以上で WordPress のサイトをまるごとコピーできます。

03Xserver の WordPress 簡単インストールを使う場合

上の例では、WordPress のシステムもコピー元からコピーしましたが、Xsever の WordPress 簡単インストールのようなツールがあるのであれば、先に WordPress をインストールして、データベースだけコピーすることもできます。

ただ、この方法をとる場合は、インストールしているプラグインがないか、または少ない場合でないとかえってプラグインのインストールに手間暇がかかります。

私の場合は、利用しているプラグインがサイトマップ用と広告用の2つだけですので、こちらの方法をとっています。その場合は次の通りです。

  • Xserver の「WordPress 簡単インストール」を使い、コピー先に WordPress をインストールする
  • phpMyAdmin で、コピー元のデータベースをまるごとエクスポートする
  • phpMyAdmin で、コピー先のデータベースのテーブルをすべて削除し、エクスポートしたデータベースファイルをインポートする
  • phpMyAdmin で、コピー先のデータベースのテーブル wp-options を選択し、siteurl, home をコピー先のドメイン名に書き換える
  • ssh でサーバーにログインするか、Xserver のファイルマネージャを使い、コピー元の wp-conten/uploads ディレクトリをすべてコピー先にコピーする
  • コピー先にテーマとプラグインを導入する

サーバー付属のツールを使いますと自由がきかない場合もありますので、なんであれ自前でやる方法を知っておくのもいいかと思います。