
- All-in-One WP Migrationでバックアップは取っているけど、リストアしたことがない。
- 試しにリストアしようとしたら有料版が必要そうだけど、これってどうなの?
- バックアップのデータからデータを抜きたい。
- サーバーの引っ越し準備としてリストアを試しておきたい。
こういった疑問に答えます。
今回は単純にバックアップデータをレストアするだけでなく、環境の構築方法も解説します。
All-in-One WP Migrationのリストアを無料で試してみよう
前回こちらでもお勧めしましたが、WordPressのバックアップにAll-in-One WP Migrationを利用されている方が多いと思います。
バックアップ自体は無料でバシバシ取れますが、いざリストアしてみようとすると、デフォルトでは最大アップロードサイズが40MBで、そもそも有料じゃないとダメなの?と感じる人も多いはず。

そして、なんと?!有料版は69ドルもする。
ここでふと、「これちゃんと戻せる(リストアできる)よね?」という疑問が出てきました。
そこで、今回は手元の環境でリストアできる環境の構築方法をご案内します。
リストアしようとしたら有料版を買わないといけないの?
もちろん有料版を買った方がよいタイミングはもちろんあります。
有料版を買った方が良い場合、
・移行先のVPC環境で、.htaccessの設定が認められてない(もしくは編集が大変)
・急ぎでバックアップをリストアから戻したい(Snapshotが使えない)
となります。
ただし、それ以外は基本的には有料版を購入する必要はありません。
ですので、まずはバックアップは定期的に取って置き、リストアが必要な際に考えれば良いでしょう。
リストア環境の構築
今回はLinux(CentOS)のセットアップについては記載しません。
構築環境の前提条件
今回はテスト環境のため、ファイアウォールやSELinuxは停止しています。
- CentOS 7.8.2003 (Core)
- CentOSはminimalインストール
- yum -y install upgrade 済み
- firewalldを停止済み
- SELinuxを停止済み
- インターネットに接続可
なお、私の環境はESXi上に構築していますが、環境化ソフトとしてはVirtualBoxでもWorkstation PlayerでもOSの部分の差はありません。
現在の環境の調べる
WordPressのバージョンはコンソールで確認ができます。
# php -v
PHP 7.3.19 (cli) (built: Jun 9 2020 08:06:30) ( NTS )
Copyright (c) 1997-2018 The PHP Group
この確認方法の問題は、コマンドライン(CLI)のPHPのバージョンのため、web側のPHPのバージョンと異なることが稀にあります。
なお私の環境はAmazon Lightsailなので、以下でphpのバージョンの確認ができます。
$ grep -i php /opt/bitnami/changelog.txt | head -n 10
Updated PHP to 7.3.XX
各パッケージが新しい順に列挙されます。今回はPHPは7.3系なのが分かります。
環境構築の際の注意点
環境構築の際の注意点としては以下の二点です。
- WordPressのバージョンを合わせる
- PHPのバージョンを(ある程度)合わせる

PHPのバージョンが(ある程度)ってどいうこと?

経験上、マイナーリリースまで合わせておけば、問題は起きにくいです。
こちらに記載がありますが、基本は新機能の追加はメジャーリリースやマイナーリリースでしか行いません。なので、マイナーリリースまで合わせておけばあまり心配はいりません。
たとえば PHP 5.3.1 を例にとると、5 がメジャーリリースで 3 がマイナーリリース、 そして 1 がポイントリリースとなります。
php.net
今回もWordPress、PHPのバージョンを合わせて構築を行います。
PHP7.3のインストール
PHPの7系をインストールするには、remiレポジトリを利用します。
remiレポジトリは、EPELの補完的な立ち位置の外部リポジトリです。
以下のコマンドでレポジトリを利用できます。
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
その後、PHP7.3系と関連するモジュールを合わせてインストールします。
# yum -y install --enablerepo=remi,remi-php73 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-mysqlnd
7系のPHPがインストールされたことを確認します。
# php -v
PHP 7.3.19 (cli) (built: Jun 9 2020 08:06:30) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.19, Copyright (c) 1998-2018 Zend Technologies
Apacheの有効化
apache自体は先程のPHPのインストール時に一緒にインストールされますので、webサーバのapacheの有効化のみをします。
# systemctl enable httpd
mariadbのインストールと起動時の有効化、設定
MariaDBのインストールのためにレポジトリの設定をします。
# vi /etc/yum.repos.d/mariaDB.repo
mariaDB.repoに以下の設定を記入し:wq!で保存します。
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
mariaDBをインストールとmariadbの起動と起動時の有効化をします。
# yum install -y MariaDB-server MariaDB-client
# systemctl enable mariadb
# systemctl start mariadb
MariaDBにログインします。
# mysql
ログインできると以下のようになります。
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.45-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
WordPress用のアカウントとパスワードを設定します。
# mysql
MariaDB [(none)]> update mysql.user set password=password('パスワード') where user = 'root';
成功すると以下が表示されます。
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
設定を反映後にexitを入力し、エンターを実行してログアウトをします。
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit
Bye
先程設定したユーザ名・パスワードでログインします。
# mysql -u root -p
Enter password:パスワードを入力
WordPressのインストール用のデータベースを作成とデータベースが作成できたか確認します。
MariaDB [(none)]> create database wp;
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
| wp |
+--------------------+
最下段にデータベース(wp)が作成されています。
WordPressのインストール
WordPressのパッケージのダウンロードにwgetコマンドをインストールします。
# yum install -y wget
WordPressのダウンロードと展開
WordPressのバージョンはWordPressのダッシュボードのホームから確認ができます。

では、WordPressのダウンロードと展開をします。
# cd /tmp
# wget http://ja.wordpress.org/wordpress-5.4.2-ja.tar.gz
# tar -zxvf wordpress-5.4.2-ja.tar.gz -C /var/www/
# cd /var/www
# chown -R apache:apache *
# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
次にapacheの設定をします。
ドキュメントルートの変更と設定の追加をします。
ドキュメントルートとは、実際にそのサーバにwebアクセスした際に表示されるディレクトリです。
vi /etc/httpd/conf/httpd.conf
変更前
DocumentRoot "/var/www/html"
変更後
DocumentRoot "/var/www/wordpress"
<Directory "/var/www/wordpress">
AllowOverride All
</Directory>
iを押し、入力モードに移行後、設定変更と追加をします。その後Escを押し、:wq!を入力してエンターを押し設定を保存します。
最後にapacheを起動してインストールと設定は完了です。
systemctl start httpd
WordPressのセットアップ
さて、いよいよWordPressのインストールをします。
設定ファイルの編集
WordPressのサンプルの設定ファイルをコピーして編集します。
# cd /var/www/wordpress/
# cp -p wp-config-sample.php wp-config.php
# vi wp-config.php
変更箇所は以下です。
変更前
define( 'DB_NAME', 'database_name_here' );
/** MySQL データベースのユーザー名 */
define( 'DB_USER', 'username_here' );
/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', 'password_here' );
変更後
define( 'DB_NAME', 'wp' );
/** MySQL データベースのユーザー名 */
define( 'DB_USER', 'root' );
/** MySQL データベースのパスワード */
define( 'DB_PASSWORD', '設定したパスワード' );
iを押し、入力モードに移行後に上記の変更し、Escを押して:wq!と入力しエンターを押して保存します。
インストールの開始
ブラウザにLinuxのIPアドレスを入力すると、WordPressのセットアップ画面が表示されます。

ここで入力するデータはリストアすると、バックアップを取得したサイトのデータに上書きされます。
セットアップ後にログインできれば問題ありませんので、適当な情報を入れてセットアップをすすめましょう。
インストールが成功すると、成功しました!と表示されるのでログインします。

設定したユーザ名、パスワードでログインします。

これでWordPressのインストールは完了です。
All-in-One WP Migrationのセットアップとリストア
前述の通り、デフォルトではリストア時の最大アップロードサイズは40MBです。
40MBでは、ほとんどの場合は容量不足でリストアができません。
そこでアップロードをサイズ変更が必要となります。
なお、アップロードサイズの変更は以下の手法で可能ですが、今回は1. と2. について解説します。
2. .htaccessにるよるアップロードサイズの変更(512MB以上も可)
3. ・有料ライセンスを購入する
1.と2. でのリストが可能な場合には、All-in-One WP Migrationの有料版を購入する必要がない可能性があります。
なお、作業自体は1のほうが簡単です。リストアのデータサイズが512MB以下の場合には、迷わず1を試してみましょう。
では、先にAll-in-One WP Migrationのセットアップを行います。
All-in-One WP Migrationのインストール
まずはプラグインからAll-in-One WP Migrationのインストールし有効化をします。

インストールは瞬時に完了しますね。
1. プラグインでのアップロードサイズの変更(最大512MBまで)
All-in-One WP Migration のサイトに行くとアップロードサイズが512MBまで用のプラグインが用意されています。

このサイトのBasicのDownloadをクリックし、プラグイン(all-in-one-wp-migration-file-extension.zip)をダウンロードします。
ダウンロードしたら、プラグインを追加します。

WordPressのダッシュボードから、プラグイン、新規追加を選択します。
プラグインの追加画面でプラグインのアップロードを選択します。

プラグインのアップロードを選択するとファイルの選択できますので、ダウンロードしたプラグイン(all-in-one-wp-migration-file-extension.zip)を選択し、今すぐインストールを選択します。

インストールが完了したら有効化を選択します。

これで完了です。簡単ですね!
インポート画面に移動すると、最大サイズが512MBになっていることが分かります。

2. .htaccessにるよるアップロードサイズの変更(512MB以上も可)
All-in-One WP Migrationのデータのアップロードサイズは、.htaccessでも変更が可能です。
使用しているレンタルサーバ(VPC)にもよりますが、.htaccessの編集が認められている場合には、512MBのレストアでも有料版を購入する必要がなくレストアが可能です。
では、さっそく作業をしましょう。
まずは .htaccessに以下を追加します。
# cd /var/www/wordpress
# vi .htaccess
追加するデータは以下の通りです。
php_value upload_max_filesize 1024M
php_value post_max_size 1024M
php_value memory_limit 256M
php_value max_execution_time 300
php_value max_input_time 300
すると以下の通り、ファイルサイズが変更した1GB(1024)MBになっていることが分かります。

以上で完了です。
レストアをしてみる
では、実際にレストアをしてみましょう。
All-in-One WPのインポートからインポート元のソースデータとして、ファイルを選択します。

バックアップファイルを選択するとリストが始まります。

レストアの開始前に以下のポップアップが表示されますので、開始をクリックします。

開始を押すと以下の注意書きがでます。ブラウザを閉じないように気を付けましょう。

以下の画面が出たら完了ですので、完了をクリックして終了です。

バックアップが完了すると自動的にログオフしますので、バックアップしたWordPressのログイン情報でログインします。

ログインするとバックアップのデータがレストアできていると思います。
以上ですべてが完了です。
まとめ
今回は、All-in-One WP Migrationのレストア環境を構築してみました。
Linux環境の場合は、viエディタになれている必要がありますが、viさえ使えればこの環境の構築はそんなに大変ではないとは思います。
バックアップデータがしっかりレストアできることが確認できれば、All-in-One WP Migrationの有料版を直ぐに購入する必要はありません。
先ずは有料版を購入する前に、この手法を試してみましょう。