WordPress のバックアップ・復元・移転を完璧に行うには

WordPress でブログを始めて1週間もしないうちにサーバー移転すると言う無計画さに自分でも呆れています。
バックアップを取って移転先に復元すれば良いんだろう?有名どころのバックアッププラグインがあるから簡単なんじゃ無いの?と思っていたんですが、それは元と移転先が同じURLを使う場合でした。
つまり、example.com で動いていた wordpress を移転先でも example.com で運用する場合ですね。これだと本当に updraftplus や all in one WP Migration などのダウンロード数が数百万のバックアップ、復元プラグインであまり考える事なく作業すれば良いです。私の場合もこうだったので updraftplus を使う事で何も悩む事無くサーバー移転は終了しました。
ここで辞めておけば幸せだったのですが、移行先のURLが違う場合、つまり example.com -> example.net みたいな場合もついでに練習しておこうと思ったのが運の尽き。データベースの中にある example.com を example.net に変換しなければならないんですが、単純に置換すれば良い訳では無く色々と面倒くさい事が分かりました。
取り敢えず本家のマニュアルWordPress の移行を読む。
ここには3つのやり方が書いてあります。

  1. 移行した後、ダッシュボードにアクセス出来るならプラグインを使う。
  2. コマンドラインで WordPress を制御できる wp-cli と言うツールを使う。wp-cliはwordpress公式のツール。
  3. Search Replace DBと言うツールを使う。

ここで書いてある1のプラグインや3のツールは最終更新が2020年と最近は更新されていないし、wordpress 公式でも無い。2の wp-cli は wordpress 公式で現在も開発が続けられていることからこの中では一番信用できるツールではないかと私は推測しています。
次に先に書いた、all in one wp migration にはバックアップ時にデータベース内容の置換機能が付属している。migration と名乗っている事からURL変換を主な目的としているのだろうし、現在も頻繁に更新されていることからこちらも信用してよさそう。

と言う訳でどれ、実際にやってみようと結局は20回近くバックアップ復元の実験をした。
結果、私の結論としては次の二つが私の見る限り正常にバックアップ・復元(URL変更する)出来ており、今後自分が使用しようと思えるものであった。

まず、最初に URL 変換がない場合は

  1. バックアップを取る。プラグインの updraftplus か all in one wp migration が良いだろう。
  2. 移転先で wordpress の初期セットアップを行い、どちらかのプラグインを導入して復元すればお終いである。場合によっては wp-config.php のデータベース名やユーザー名、パスワードの修正が必要かもしれない。

まぁ、誰でもできる作業だと思う。問題は URL が変わる時だ。
私の最初のお勧めは updraftplus でバックアップして、そのまま移転先に復元してから wp-cli で

wp search-replace 'https://example.com' 'https://example.net'

する事である。

2番目は、all in one wp migration でバックアップする時データベースの内容を置換してくれる機能を利用する方法だ。その後、移転先で復元すれば良い。これは wp-cli と言う ssh 接続してコマンドを叩くと言う知らない人が見たらハッカーもどきの作業に比べれば難易度は格段に低いから普通の人にはこちらがお勧めだと思う。

なお、all in one wp migrastion はファイルの容量が 512MB を超えると有料版が必要になるが、こいつでバックアップするのはデータベースだけにしておけば、私の例だが10記事で2MB 行かないくらいだったので大雑把に3000記事位までは大丈夫と思われ、事実上無制限に近い。他のはどうするんだって?移転先で all in one wp migration が動く最小限の構成で立ち上げ、rsync で元からどさっとコピーしておいてからリストアすれば良い。

ちょっと普通の人には難しいかもしれないけど普段 ssh でやっている人には簡単だと思う。
1日朝から晩までバックアップ・復元実験に費やしたがこれで wordpress 引っ越しを頼まれても多分できると思われる。
ではでは

コメント

タイトルとURLをコピーしました