- “All-in-One WP Migration and Backup”とは
- FutureShopのPHPバージョン更新で“WP migration”が使えなくなった
- “WP migration”を使わない「他のプラグイン」による代替の方法を備忘録として記載します。
- 最後に
“All-in-One WP Migration and Backup”とは
“All-in-One WP Migration and Backup”はWordpressの移行や複製を簡単に行うためのプラグインです。このプラグインを使用すると、以下のような作業が容易になります:
- サイト全体のバックアップの作成と復元
- 異なるサーバー間でのWordPressサイトの移行
- ローカル環境から本番環境へのサイトの移行
- テーマ、プラグイン、データベース、メディアファイルを含むサイト全体のコピー
All-in-One WP Migration and Backup (以降、「WP migration」と記載します)
他にも”BackWPUp”などのプラグインがありますが、“WP migration”以外のものは、DBのバックアップは簡単に行えるものの、そのバックアップしたDBを本番環境や開発環境など、他のサーバーに移行しようとすると処理方法が格段に難しくなります。なので、“WP migration“は本当に助かるツールでした。「有料版でないとファイルサイズの制限がある」など制約がありますが、「そのくらい普通に金払って楽な方法を選ぶわ!」っていう気持ちでした。タイムイズマネー。
FutureShopのPHPバージョン更新で“WP migration”が使えなくなった
ある日、FutureShopサイトで使用している WordpressのDBのバックアップを行おうとして気づいたのだが、
“WP migration”がPHPエラーのために有効化できなくなっていた。
調査したところ、FutureShopの新バージョンのPHPでtouch()関数が使用できなくなったため、”All in one WP migration”が使えなくなったらしい。
FutureShopに質問したところ、以下の回答だった。
サーバーログ上でも、「All-in-One WP Migration」というプラグインにて、
touch関数が未定義によるエラーが出ていることを確認いたしました。
恐れ入りますが、弊社CMSサーバーでは、
セキュリティを考慮し、touch関数を利用できないよう制限をかけさせていただいております。
上記プラグインの利用時にtouch関数を用いる仕様の場合は、
恐れ入りますが、弊社サーバー側の制御によりご利用いただくことができません。
別のプラグインをご利用いただくなど、対応をご検討いただけますと幸いです。
“WP migration”を使わない「他のプラグイン」による代替の方法を備忘録として記載します。
WP migrationを使用できないと、手動で行うDB移行はけっこう面倒。仕方がないので、やり方を思い出しながら、実行して、その内容を備忘録として整理しました。
1)FTP上のwp-content以下のテーマファイルを最新状態にする
DBが変わってもFTPのほうは更新されませんので、もし開発環境から本番環境への移行、または逆の場合、FTP上でのファイルも忘れないように。
2)本番WPのプラグイン”BuckWPup”で最新のDBを.sqlファイルでDLする
ここでは”BuckWPup”という、移行元サイトのDBのバックアップを取れるプラグインを使用します。.sqi形式でDBがエクスポートできるなら、ほかのプラグインでも大丈夫です。
3)XサーバーのphpMyAdminで、2) でDLしたSQLを移行先テーマにインポート
Xサーバーのコンパネ内の”phpmyadmin”という項目から、対象のサイトが使用しているDB名を探す。DB名がわからなければ、本記事内の5-2-③の部分を見るとわかると思います。
ファイルの大きさによってインポートにけっこう時間がかかる
完了したところ
つぎに、
4)XサーバーのphpMyAdminでテーマのURLに変更する
XサーバーのphpMyAdminで、SQLをインポートしたあと、以下の箇所(wp-options内の”siteurl”と”home”)を移行先のURLに変更する。
あ、すみません、ここで、早々にインポートするのではなく、念の為、「今入っているDB」をエクスポートしておきましょう。こうすることで、このあとのインポート処理で失敗しても、最悪エクスポートしたDBを入れ直せばいいだけです。
5)Search-Replace-DB-masterを使い、DB内の本番URLをSTG URLに一括置換
1…FTPサーバーにアクセスし、WordPressをインストールしているルートディレクトリにファイルをアップロード
こちらのような素晴らしい記事を参考に、”Search Replace DB master“というツールと、その取得方法を参考に。
取得したら、WordPressをインストールしているルートディレクトリに本ファイルをアップロードします。
アップロード先は、wp-adminや、wp-includeのディレクトリがある階層になります。
2…そして、ブラウザで”https://[移行先サイトのURL]/Search-Replace-DB-master” にアクセスすると、以下のような画面が開く
①置換する文字(ここでは移行前のサイトURL)を入力。
②置換後の文字(ここでは移行後のサイトURL)を入力。
③ ①②を入力したあと、一度”Test connection”を押してみる→自動で上の情報が入ればそのまま、 入らなければ、手動で入力する。この情報はFTPのさきほどのディレクトリにいた”wp-confing.php”内に情報がある。(portは未入力でOK)
3…うまくいくとこのように、”Success. You are connected.”と表示される。
4…“Do a safe test run”を選択する
こんな感じになるけど大丈夫です。
各エラーの最後に「追伸:このエラーを引き起こすのはYoastプラグインであることがほとんどです。」と書かれています。今回の作業には影響ないものです。
ほかの記事を見ていても、このエラーは然るべくして発生するものだと思われます。
(失敗しても最悪、事前にエクスポートしたDBがあるので、これをインポートしてあげればもとの状態には戻ります)
5…置換実行
更新アイコンが回りながら、下のログがどんどん増えていきます。
6…Search-Replace-DB-masterを必ず削除!
完了したら、”delete me”で、FTP上から アップロードした”Search-Replace-DB-master”ディレクトリを 削除してくれます。 これをしていないと、他の人がこのSearch-Replace-DB-masterの画面にアクセスできますので、 DBが書き換えられたり、情報が漏洩する危険性があります!
最後に
この方法は、”All in One WP Migration”プラグインが使用できない状況下で、WordPressサイトを効果的に移行するための代替手段として非常に有用です。サーバーの制限やPHPバージョンの問題がある場合でも適用可能です。ただし、この方法は技術的な知識を必要とし、時間がかかる可能性があります。それでも、プラグインが機能しない状況では、この手順は信頼性の高い代替手段となります。
もしお困りであれば、PRYTHMWORKSにご相談ください!