WordPress

【WordPress】Duplicatorを使ったサイト移行の注意点

【WordPress】Duplicatorを使ったサイト移行の注意点

WordPressのカスタマイズやプラグインに関する情報です。

評価:4

今回はサイト移行プラグイン「Duplicator」を使ってWordPressサイトを移行する際の注意点をご紹介します。

サイト移行プラグイン「Duplicator」とは

サーバー移転のためWordPressサイトを丸ごと移行する必要がある時、「Duplicator」を使えば簡単に移行が完了します。

WordPressサイト移行プラグイン「Duplicator」

サーバーから大量のファイルをダウンロードしたり、phpMyAdminでMySQLのデータをエクスポート・インポートしたり手作業で移行しなくていいからいいんです。使い方は他のブログにもたくさん記事があるので書きませんが、「Duplicator」を使う際にいくつか注意することがありました。

移行元と移行先のバージョンを確認

サーバーが変わる場合は、移行元と移行先のMySQLやPHPのバージョンが異なることがあります。移行元のWordPressのバージョンもかなり古い場合があります。移行の場合は、制作当時のプラグインをそのまま使用したいことがほとんどだと思うので、WordPressのバージョンもプラグインのバージョンも最新の状態にして移行する訳ではないと思うんです。(最新にするのが理想だけど)

ピンキー
ピンキー
古いバージョンのまま移行することってあるよなぁ

例えばこんな感じ

移行元 移行先(2020.4時点)
WordPress3.4.2 WordPress3.4.2(最新は4.9.13)
MySQL5.5.64 MySQL5.6.42
PHP5.4.16 PHP7.0.32では動かずPHP5.6.38
Duplicator1.2.8なら使用可 Duplicator1.2.8(移行元と同じ)

かなり古いバージョンのWordPressからの移行だということが分かります。

最新のDuplicatorがインストールできない

WordPressが古いため当時(2020年4月)の最新バージョン「Duplicator1.3.30」はインストール不可。それで、以前別のサイトを移行する際に使った古いバージョンの「Duplicator1.2.8」をインストールしてみたところ、上手く動作したので通常の手順で移行し無事に移行先のサーバーで古いWordPressサイトを動かすことができました。移行は完了!

モンキー
モンキー
Duplicatorも古いバージョンしか使えなかったんだよね

最終画面(Step4)まで表示されることが重要!

Duplicatorが順調に進み、最後のこの画面(Step4)は正しく表示されましたか?
この画面とても重要な役割があります。

Duplicatorの最終画面(Step4)

「Auto delete installer files after login」にはデフォルトでチェックが入っていて、この状態で「Admin Login」ボタンを押すと「Duplicator」関係のファイルが全て削除されます。この画面が何らかの理由で表示されず、Duplicatorの痕跡が残っていた場合に改ざん被害に合うことがあります。

[pz-linkcard-auto-replace url="https://cocojam.jp/everydaylife/wordpress/322"]

最終画面(Step4)が表示されないパターン

例えば、Duplicatorの最終画面(Step4)がエラーになり、このように表示されることがあります。

Duplicatorの最終画面(Step4)でエラー

Forbidden
You don’t have permission to access /xxxx/dup-installer/main.installer.php on this server.

WordPressサイト移行の場合、移行元と移行先の環境が異なるので、この場合「.htaccess」まで移行前のサーバーからコピーされたために、移行先のサーバーの「.htaccess」が置き換えられて、最後の処理が正しく動かなくなったことがわかりました。

最終画面(Step4)で失敗した場合

Duplicatorの最終画面まで行かなくても大丈夫です。移行先サイト側でWordPressのダッシュボードから「Duplicator」関係のファイルを削除できます。

Duplicator「Remove Installation Files」ボタンでファイル削除

「ダッシュボード>Duplicator>Tools」と進むと、「Diagnostics」タブに「Remove Installation Files」ボタンがあるので、これをクリック!これで、移行データが削除されます。さらに、移行先のサーバーに移行データが残ったままになっていないかをFTPソフトで確認します。もし、「installerxxxx」「dup-installerxxxx」などの名前が付いたファイルやフォルダが残っていたら、不要なので手作業で削除する必要があります。

移行完了後、Duplicatorの「Remove Installation Files」ボタンをクリックして移行データを削除

古いDuplicatorに要注意

実はこの「Duplicator」関係のファイルを削除する作業、気づかないことが多くて知らないとサイトを改ざんされる可能性があります。今回は古いバージョンのDuplicator(1.3.26以下)を使ったために、プラグインの脆弱性が狙われ改ざん被害にあいました。その時の詳しい記事はこちら。

[pz-linkcard-auto-replace url="https://cocojam.jp/everydaylife/wordpress/322"] 2020年2月のバージョン「Duplicator1.3.28」ではこの脆弱性は対処されているようです。

Duplicator WordPress のプラグインにおける脆弱性の悪用が確認される

Wordfence の研究者によると、Duplicator バージョン1.3.26以下および Duplicator Pro バージョン3.8.7以下に、認証されていないユーザーによる任意のファイルダウンロードの脆弱性が存在します。
この脆弱性は、duplicator_download と duplicator_init の2つの関数の実装が原因で存在します。これらの関数は wp_ajax_nopriv_ フックを使用して実装されているため、認証されていないユーザーによるアクセスが可能になります。関数が「init にフック」されているため、ユーザーのログイン状態に関係なく、ロードされたすべての WordPress ページで実行されると研究者らは指摘しています。

https://jp.tenable.com/blog/duplicator-wordpress-plugin-vulnerability-exploited-in-the-wild

まとめ

Duplicatorを使ってWordPressのサイトを移行する際「wp-config.php」を書き換えられないようにすること、「Duplicator」関係のファイルを完全に削除することが今回注意すべき点だと分かりました。

注意すべき点

・wp-config.phpのパーミッションが「400」か「600」になっていること
・「installerxxxx」「dup-installerxxxx」のような名前の付いたファイルが残っていないかを確認すること
・できれば最新のDuplicatorを使用すること(使えなければまだ手作業の方がよいかも)

この記事は、2020.9.6時点の情報です。