THE THORというテーマを購入し、様々な設定を行って自分にとって使いやすいWordPress設定をしているが手順については全く記録していない。この状態でサーバーやWeb設定にミスがあったら取り返しが付かなくなるのでバックアップ&リストアの方法について簡単に説明するページを作ってみた。バックアップ&リストアの試験的な条件として、仮定としてサイトの引っ越しを例に挙げる。また基本動作を理解するために「プラグインを使わないでWordPressをバックアップする」
バックアップ環境&条件
- サーバーは「さくらインターネット」
- テーマは「THE THOR」
以上のサイトをA(https://wp.mz8k.com/)からB(https://jm.2-d.jp/)へ移す(引っ越す)方法をまとめてみる。
バックアップ対象は2つ
・ファイルシステム
・データベース
ファイルシステムのバックアップ
コマンド形式は以下の通り
% tar -cvzf [保存ファイル名].tar.gz [WordPress保存先ディレクトリ]/
例えば、圧縮フェイル名:WordPress.tar.gzでwpress配下に保存されているファイルシステムをバックアップする場合
% tar -cvzf WordPress.tar.gz wpress/
となる。
実はコレだと、親ディレクトリも含めてバックアップされるので(丁寧にバックアップするという意味では有効ではあるが)。親ディレクトリ無しでバックアップする場合には
tar czf ../backup.tgz *
とする
データベースのバックアップ
コマンド形式は以下の通り
mysqldump --add-drop-table -h [MySQLサーバー名] -u [MySQLユーザー名] -p --no-tablespaces [MySQLデータベース名] > blog.bak.sql
データベースへのアクセスするパスワード[MySQLユーザー]パスワードを聞かれるので入力する。
bz2で圧縮する場合には以下の通り
mysqldump --add-drop-table -h [MySQLサーバー名] -u [MySQLユーザー名] -p --no-tablespaces [MySQLデータベース名] | bzip2 -c > blog.bak.sql.bz2
リストアの実行
受け皿の用意
受け皿とは、サイト引っ越し先の諸設定のことです。新規(引っ越し先)ドメインとか新規(引っ越し先)サーバーとかは、各人用意します。
まずは単独サイトを立ち上げます
まず、引っ越ししたいドメインに対して新規にWordPressサイトを立ち上げます。
データベースのインポート
bzip2で圧縮してある場合
$ bzip2 -d blog.bak.sql.bz2
で解凍してblog.bak.sqlを取り出します。つぎに
$ mysql -u [DBユーザ名] -p -h {データベースホスト] -p [データベース名] < blog.bak.sql
データベースへのアクセスするパスワード[MySQLユーザー]パスワードを聞かれるので入力する。
これで、データベースに値が反映される
ファイルシステムの解凍
圧縮したファイルシステムを解凍したいディレクトリにファイルを移して(ここではwordpress2配下に解凍すると仮定する)
tar xvf WordPress.tar.gz
を実行。圧縮されたWordPress.tar.gz
はwpress/wp-admin….の様に親ディレクトリ(wpress)含めてでバックアップされているので、このまま展開すると以下の様になる
wordpress2/wpress/wp-admin….
wordpress2/wpress/wp-content…
wordpress2/wpress/wp-includes….
wordpress2配下に解凍したかったが、このままだとwpress配下の一階層下がったディレクトリにファイルシステムが解凍されてしまうので、階層を1つ上げる。要するに
wordpress2/wpress/wp-admin….
wordpress2/wpress/wp-content…
wordpress2/wpress/wp-includes….
を
wordpress2/wp-admin….
wordpress2/wp-content…
wordpress2/wp-includes….
にする
wordpress2/wpress/へ移動して
mv * ../
.htaccessはワイルドカード(*)ではコピーできないので、cpで明示的にコピーを実行させる。
cp .htaccess ..
これでOK
WordPressの設定ファイル(wp-config.php)を書き換える
データベースアクセスのためのデータベース名/ユーザー名/パスワード/MySQL のホスト名を新しい(引っ越し先の)情報に編集します
データベースの中に格納されているドメイン情報を新たなものに書き換える
データベース内にURL情報が保存されているので、外部ツール(Search Replace DB)を利用して、データベースの中に入っている旧ドメイン(URL)情報を新ドメイン(URL)情報へ変更します。Search Replace DBの使い方については他のサイトで調べてください。