「Duplicator」の使い方・解説(トラブル事例とその解決法)

現在運用しているWordPressのWEBサイトを別のサーバーに移して運用したいときに便利なプラグイン、「duplicator」の使い方を説明します。
旧サーバーと新サーバーのデータベースの接続情報が異なっているとしても、duplicatorを使えば確実に設定することができます。
他には、WordPressのテーマを販売するときにもよく使われています。

新サーバーにWordPressをインストールする必要はありません。
データベースを使える状態にしておくだけで引っ越しが可能です。

大まかな作業の流れ

duplicatorによる作業は概ね以下のような手順になります。

  1. 旧サーバーのWEBサイトの情報をduplicatorを使ってパッケージ化する。
  2. 作成したパッケージを新サーバーに移す。
  3. 新サーバーでパッケージを展開(インストール)する。

ただし、作業を行う前に新サーバーとWordPressの環境設定に関して、以下の項目を確認または完了させてから作業に入りましょう。

PHPとWordPressのバージョンを確認

duplicatorのバージョンが1.3.8では、PHPとWordPressのバージョンについて以下のような動作仕様があるので確認しておきましょう。

  • PHPバージョン 5.2.17以上
  • WordPressバージョン 4.0以上

新サーバーとデータベースを用意

新規でサーバーを立ち上げる場合です。
これはレンタルサーバーでも自前のサーバーでも構いません。
データベースの登録も行いましょう。
その際に使用したデータベースのアカウント名、ユーザー名、データベース名、パスワードはこの後使うのでメモしておきましょう。

新サーバーのPHPのバージョンを確認

旧サーバーで使用しているPHPのバージョンと同じにしておく必要があります。
同じでなくても引っ越しは可能ですが、インストール後に大きな不具合が発生する可能性が高いのでバージョンはそろえておきましょう。

バックアップ

念のためにバックアップをとっておきましょう。
もし、新サーバーですでに稼働しているWordPressサイトを上書きする場合は新サーバーでもバックアップをとっておきましょう。
パッケージを新サーバーにインストールすると、新サーバーのデータベースのテーブルは全て上書きされます。

duplicatorを使ってパッケージ化する

これから、旧サーバーから移動させたいファイル群をまとめてパックにしたパッケージファイルと、それを新サーバーで展開するためのインストーラを作成します。

まずは現在運用しているWordPressにduplicatorをインストールしてください。
インストールが終わったら管理画面にduplicatorのメニューが表示されるので、そこから「Packages」を選択してください。

「Packages」を選択

Packagesを選択したら右上の「Create New」を選択してください。

「Create New」を選択

以下の画面が現れ、これから「Name」、「Storage」、「Archive」、「Installer」の4項目の設定を行います。

「Name」、「Storage」、「Archive」、「Installer」の4項目の設定を行います

 

Name

これはパッケージの名前になります。
どんな名前でも構いません。半角英数字を使ってわかりやすい名前を付けましょう。

パッケージの名前

Storage

作成されるパッケージの保存先を指定します。
これは、duplicatorの有料版を使用しているときに設定が可能になります。

パッケージの保存先を指定

Archive

引っ越しさせたくないファイル、ディレクトリ、データベースのテーブルをフルパスで指定します。

Files

「Archive Only the Database」と「Enable File Filters」にチェックが入っていなければ、全てのファイルとディレクトリをパックします。
今回のケースではすべて引っ越しするので、両方ともチェックを外します。

一部のファイルまたはディレクトリをパックしたくない場合は「Enable File Filters」」にチェックを入れて、その下に除外するファイルまたはディレクトリを指定できます。
例えば、動画ファイルなどをパックするとパッケージの容量が肥大化するので、mp3やwavなどの動画の拡張子を指定して除外することが可能です。
そんなときは「File extensions」に拡張子を記入して、パックしたくないファイルの拡張子を「;(セミコロン)」で繋いで並べます。
そして「File extensions」の入力欄の右端にある「media」、「archive」、「clear」が入力をサポートしてくれます。

パッケージの容量が150MBを超えるとパッケージのダウンロードに時間がかかってタイムアウトを引き起こす可能性があるので注意しましょう。

もちろん動画以外のファイルやディレクトリを任意で選択できます。

Database

引っ越しさせたくないデータベースのテーブルを指定します。
プラグインが自動で作成したテーブルもありますが、今回のケースではプラグインも含めてすべてパックするので何もチェックを入れずに、デフォルトのままで次に進みます。

Installer

新サーバーでパッケージを展開してインストール作業を行う際に、そこで行う設定をここで事前にやってしまおうというものです。
ここも特に変更の必要はないので、デフォルトのまま次に進みましょう。

すべての設定が完了したら、下にある「Next」ボタンをクリックして次のステージに進みましょう。

Scan

ひとつ前の「Setup」での入力に間違いがなければ、各項目に「Good」の文字が表示されます。

「Setup」での入力に間違いがなければ、各項目に「Good」の文字が表示されます

何も問題がないなら、下にある「Build」ボタンを押して次に進みます。

Build

Buildが成功したらインストーラとパッケージをダウンロードします。
「Installer」ボタンと「Archive」ボタンをクリックしてダウンロードを実行してください。

Buildが成功したらインストーラとパッケージをダウンロードします

旧サーバーのWordPressで行う作業はこれで完了です。

よくあるトラブル – インストール前

インストーラを作成するまでの作業で発生しうるトラブルを紹介します。

Buildに失敗する

Buildを実行したあとにしばらくすると「Host Build Interrupt」という表示が現れて、インストーラもパッケージも作成されない場合があります。
これは「Build」の作業項目で「Size Checks」にNoticeの表示がされている状態でBuildを実行したときに起こりやすいエラーです。

サイズが大きいとBuildが完了するために多くの時間がかかります。
旧サーバーの環境でPHPやデータベースに設定されているタイムアウトが短いことが原因のひとつかもしれません。
例えばPHPなら、php.iniのmax_excution_timeを変更することでタイムアウトを延ばすことができます。

パックするファイルを選択するか、タイムアウトの時間を延ばすなどの対処が必要です。

インストーラやパッケージをダウンロードできない

パッケージ自体は作成が完了したとしても、それをダウンロードするときに500エラー(internal server error)が発生することがあります。

旧サーバーのWordPressのルートディレクトリ内に「wp-snapshots」というディレクトリが存在します。
このwp-snapshotsディレクトリの中にduplicatorが作成したインストーラやパッケージが保存されます。

この中の「.htaccess」というファイルの中には「Options -Indexes」という記述があります。
これは、「index.htmlが存在しないディレクトリにアクセスした場合、403エラーを返すことでディレクトリの閲覧を禁止する」という記述です。
レンタルサーバーによっては、.htaccess内にこの記述がある場合は500エラーを返すものがあります。

この.htaccessは不要なので、削除した後でもう一度ダウンロードを行いましょう。

そもそもこの.htaccessを作成しない方法があります。
旧サーバーの管理画面のduplicatorのメニューの中にあるSettings > General > Plugin > Storageにある「Disable .htaccess File In Storage Directory」にチェックを入れておきましょう。

新サーバーでのインストール作業

新サーバーにインストーラとパッケージを移動させる

続いて、新サーバーのWordPressをインストールする予定のディレクトリ内に、先ほどダウンロードした2つのファイルを移動させます。
移動の際はftpクライアントソフトを使うか、レンタルサーバーであればサーバー会社のホームページにアクセスしてファイルマネージャーから行います。

新サーバーにインストーラとパッケージを移動させる

インストーラを開く

ブラウザを開いて、installer.phpを開きます。
URLを以下のように入力します。

インストーラを開く

上記のURLを呼び出すとインストールのための設定項目がブラウザに表示されます。

Archive

サイト名やインストールされるサーバーの場所など、これからインストールするWEBサイトの基本情報が書かれています。

Validation

これからインストールするパッケージが新サーバーの環境に適しているかどうかをチェックします。
何も問題がないなら各項目に「Good」の文字が表示されます。

問題がある項目には「Warn」の文字が表示され、今後のWordPressの運用で致命的な問題が発生する可能性が高いです。
この状態でもパッケージを展開することは可能ですが、そのままパッケージを展開することは上記の理由により推奨はしません。
インストール作業を一旦中断して対処しましょう。

Options

ここでは展開するパッケージに関する設定が行えます。
基本はデフォルトのままです。

全ての設定が完了したら、これらの設定情報を納得したうえで「I have read and accept all terms & notices (required to continue)」にチェックをいれて「Next」ボタンをクリックします。

データベースの設定を行う

新サーバーで使用するデータベースの情報を記入します。

データベースの設定を行う

Setup

新サーバーのデータベースの基本情報を入力します。
必要な情報はホスト名、データベース名、ユーザー名、パスワードです。

入力したら下にある「Test Database」をクリックしてデータベースの接続テストを行いましょう。

Options

文字コードやMySQLに関する設定を行います。
基本はデフォルトのままです。

Validation

「Test Database」の段階でエラーや警告があればここに表示されます。
何も問題がなければ「Next」を押します。すると以下の確認事項が現れます。

「Test Database」の段階でエラーや警告があればここに表示されます

WARNINGには、「入力されたデータベースの接続情報は本当に正しいですか?間違った接続情報でデータベースに上書きしてしまうかもしれません。先に進む前にデータベースのバックアップをとってあるか確認してください」と書いてあります。
問題がなければ「OK」ボタンを押して次に進みます。
この作業が完了すると、インストーラとパッケージが置かれている新サーバーのディレクトリ内に旧サーバーのWordPressを構成する全ファイルが展開されます。

Update Data

これからインストールする新しいWordPressサイトのURLとルートパスとサイトタイトルを設定します。
ここは何もせずに「Next」ボタンをクリックして次に進みます。

Test Site

インストールが完了しました。
「Admin Login」のボタンを押して管理画面に入ることができますが、非常に大切な情報が書かれているのでWordPressへのログインは一旦お待ちください。

インストールが完了

「Admin Login」ボタンの下に「IMPORTANT FINAL STEPS」という警告が現れていることに注目しましょう。
この警告は「インストールで使用したファイルが残ったままです。残したままではセキュリティ上危険なので、これらを削除するためにWordPressにログインしてください。」という意味です。

管理画面に入る前に「Auto delete installer files after login (recommended) 」にチェックが入っておけば、WordPressにログインすると自動で削除されます。
しかしそれでもまだ安心できないようです。

WordPressにログインして管理画面に入りましょう。duplicatorのメニュー画面に移動するのですが、そこの「Security Notes」に注目しましょう。
ここに書かれている内容は以下のようなことです。

「インストール時に使用したファイルを自動で削除しても完全に削除されない場合があります。なので、FTPクライアントソフトやレンタルサーバーのファイルマネージャーを使って手動で削除していただくことを強く推奨します。セキュリティ上の危険を避けるために不要なファイルをすべて削除してください。」

不要なファイルがすべて削除されているかを必ず確認しましょう

自動削除の機能を使ったとしても削除に失敗する可能性があるということです。
不要なファイルがすべて削除されているかを必ず確認しましょう。

不要なファイルの削除を行って、これで引っ越し作業は完了しました。

よくあるトラブル – インストール後

インストール作業の中で発生しうるトラブルを紹介します。

Validationでの警告

Overwrite Install

新サーバーですでに稼働しているWordPressサイトがある場合に現れます。
厳密には、すでにwp-congif.phpが存在するときです。
wp-config.phpにはデータベースのアカウントやユーザー名などの情報が書かれているため、これが上書きされることを警告で教えてくれています。
インストール作業の中で入力したデータベースの設定情報に注意して先に進みましょう。

PHP Version Mismatch

旧サーバーと新サーバーでPHPのバージョンが異なる場合に警告が現れます。
新サーバーにインストールされた瞬間にPHPのバージョンが変わるので、管理画面を開くだけでもエラーが発生する可能性があります。
インストール作業を進める前に新サーバーのPHPのバージョンを旧サーバーのものと同じにしておきましょう。

管理画面へのログインを拒否される

duplicatorによって新サーバーに移行する場合、新サーバーに元々あったデータベースの情報は全て上書きされています。
従って、ログインアカウントやパスワードは旧サーバーで使用していたものとなります。
旧サーバーでのログインアカウントとパスワードでログインした後に設定を書き換えましょう。

ページのデザインが崩れていたり画像が表示されなくなった

CSSファイルや画像のファイルパスの指定が旧サーバーのものになっている可能性があります。
使用するテンプレートタグに注意して、正しいファイルパスに書き直しましょう。