WordPressサイトのバックアップやサイト移転は、『All-in-One WP Migration』を使うのがもはや定番です。
このプラグインを使うと本当に簡単にバックアップとリストアができる上に、他のサーバーへのWordpressサイトの引っ越しも驚くぐらい簡単に終わってしまう素晴らしいプラグインです。
しかし、無料版のプラグインにはインポート可能なサイズに512MBの制限があり、投稿数が多くなってくると512MBでは収まらなくなります。512MBで収まらない場合は、有料プラグインを購入するか、一工夫しないと使えなくなります。
この記事では、無料版の512MBの制限を超える方法について書いてみたいと思います。
All-in-One WP Migrationの無料版のインポート制限について
無料版のAll-in-One WP Migrationは、バージョン6.77まではインポートの制限が512MBでしたが、バージョン6.78から分割アップロードの機能が削除されました。その影響で、サーバーのアップロードリミットサイズでインポートサイズが制限されます。
分割アップロードの機能を復活させるには、『All-in-One WP Migration File Extension』プラグインをインストールする必要があります。
このプラグインは現在では公開停止になっています。
All-in-One WP Migrationの無料版 512MBの制限とは?
All-in-One WP Migrationの機能はとてもシンプルです。
All-in-One WP Migrationには3つの機能しかありません。
- インポート
- エクスポート
- バックアップ
この中で、細かい設定項目があるのはエクスポートだけです。
無料版でもエクスポートは無制限
エクスポートは最大ファイルサイズの制約はありません。
エクスポートに制限がないのは、あくまでもインポートするときに512MBの制限があるからで、無料版では512MB以上のサイズをエクスポートしてしまうと、インポートできません。
エクスポートサイズを512MB以下に減らすには?
殆どの場合、エクスポートサイズが大きくなるのはWordpressのメディアライブラリが大きいからです。画像ファイルを1枚アップロードすると様々なサイズの画像が生成されるので、アップロードした画像サイズ以上にサーバーのディスク容量を消費します。
All-in-One WP Migrationのエクスポートには様々なオプションがありますが、オプションの中に『メディアライブラリをエクスポートしない』というオプションがあります。
メディアライブラリをエクスポートしなければ、多くの場合は512MB以下に収まるのではないでしょうか?
メディアライブラリをエクスポートしないでインポートすると?
既存のメディアライブラリがサーバーに残った状態で上書きインポート
バックアップからの復元を目的として、既存のメディアライブラリがサーバーに残った状態で上書きインポートする場合は、メディアライブラリは要らないのでエクスポート時にメディアライブラリを含めなくても問題ありません。
既存のメディアは既にデータベースに登録されているので、メディアフォルダにファイルがあればそのまま認識されます。
WordPressのクリアインストールや、新規サーバーに引っ越し
既存のメディアライブラリがない、Wordpressのクリアインストールや、新規サーバーに引っ越しなどの場合は、メディアライブラリを除いてエクスポートしたファイルをインポートするとメディアライブラリの中身が空っぽな状態になります。
512MB以下に収めるために除外したメディアライブラリを、別途FTPやファイルマネージャーでメディアライブラリ内にコピーすればWordpress上でも認識されます。
ディレクトリ構造を変えてしまったり、データベースにないファイルをメディアライブラリのフォルダにファイルをコピーするとWordpressは認識しません。
上記のようなAll in One migrationでインポートした時点と異なるメディアライブラリの状態にしたい場合に、FTPなどでアップロード後にWordpressに認識させる方法はいくつかあります。
便利なプラグインとして、Media from FTPがあります。
もし画像を強制的に認識させたとしてもデータベース上で各画像のidが変わってしまうと、お使いのテーマによっては画像が入れ替わったり表示されなくなったりします。Visual composerのようなエディタでショートコードをバリバリ使っている場合、ショートコードの引数に画像のファイル名じゃなくidが並んでいると、id変更による表示不具合が起きます。
そうなると、いちいち手作業で記事を修正する必要がありますので、512MBの制限は厄介な制限ということになります。
All-in-One WP Migrationの512MBの制限を取り払うには?
有料プラグインの詳細
一番簡単なのは、有料プラグインを購入することです。
有料プラグインを購入すると、all-in-one-wp-migration-unlimited-extension.zipというファイルをダウンロードできるようになります。
all-in-one-wp-migration-unlimited-extension.zipをプラグインとしてインストールすればAll-in-One WP Migrationの512MB制限はなくなります。
なお、有料プラグインを購入してダウンロードできるall-in-one-wp-migration-unlimited-extension.zipには購入者IDが書き込まれているので、ネット上に転がっているものは既に使えない処置がベンダーサイドで行われていることが多いです。
プラグインの設定値を書き換える
古いバージョンしか対応していない方法です。ダウンロードしてプラグインを有効化します。
ダウンロード:https://downloads.wordpress.org/plugin/all-in-one-wp-migration.6.77.zip
有料プラグインを購入しなくてもプラグインの設定値を書き換えれば制限がなくなります。プラグインのconstants.phpに書かれている設定値を書き換えることで512MBの制限値を変更することができます。
/wp-content/plugins/all-in-one-wp-migration/constants.php
初期状態だと以下のように2^28で512MBと記載されています。
変更前
// =================
// = Max File Size =
// =================
define( 'AI1WM_MAX_FILE_SIZE', 2 << 28 );
変更後
以下のように変更すると、512MBの10倍なので、5GBに上限値が変更されます。
// =================
// = Max File Size =
// =================
define( 'AI1WM_MAX_FILE_SIZE', 20 << 28 );
この方法はプラグインがアップデートするたびに上書きされますので、やや面倒ですがAll-in-One WP Migrationを使う機会もそれほど頻繁にないでしょうから、この方法でも問題は少ないと思います。
All-in-One WP Migrationでインポートが途中で止まる場合
エクスポートとインポートのPHPのバージョンの違いでインポートが止まることが多いです。特に古いサーバーから新しいサーバーに引っ越す時には、エクスポートがPHP5でインポート先がPHP7ということでインポートできないことがよくあります。
そうなると、基本的にはインポート側のPHPのバージョンを下げるしかありません。
インポートは正常に終わったのに、特定の画像ファイルが上手く認識されていないことがあります。その原因はファイル名が日本語の場合が多いです。
WP Multibyte Patchを使っていればファイル名の文字化けは無くなりますが、すでにあるファイルに対しては無力です。
All in One Migrationで日本語ファイル名のインポートに失敗する場合は、FTP経由でuploadフォルダ毎ダウンロードして、アップロードすれば認識されます。
まとめ
All-in-One WP Migrationはとても便利です。512MBの制限がなくなれば全自動でサイトの引っ越しも終わります。
サイトの引っ越しやバックアップなどはAll-in-One WP Migrationを使うのをお勧めします。