サイトやブログを運営していく上で最も重要といっても過言ではないのがバックアップです。バックアップとは予めデータを複製し、別のハードに保存しておくことで、万一データが破損したり消えてしまうなどのトラブルがあってもサイトをほぼ元の状態に復旧することができます。
バックアップを怠っていると、何かトラブルがあった際に汗水垂らして作ったサイトがパーになってしまいかねません。日頃からこまめにバックアップをとっておきましょう。
目次
復旧に必要なもの
WordPressサイトを復旧するために必要なものは
- WordPress本体を構成するプログラムやテーマなどのファイル
- データベースに格納されている投稿記事などのデータ
の2つです。
どちらか片方でも欠けてしまうとWordPressサイトを元の状態に戻すことはできませんのでご注意下さい。
ファイルのバックアップ
まずはWordPressを構成しているファイルのバックアップをとる方法です。ファイルはサーバーからダウンロードする方法とFTPソフトを使ってダウンロードする方法があります。
サーバーパネルからバックアップする方法
私はエックスサーバーを使用しているのでエックスサーバー上での説明となります。他のサーバーを使用している方は画面や操作が異なります。ご容赦下さい。
エックスサーバー サーバーパネルのログイン画面を開いてログインします。
https://www.xserver.ne.jp/login_server.php
画面やや左上の「バックアップ」をクリックします。
バックアップしたいサイトの右側にある「ダウンロード」をクリックします。「サイトのURL.tar.gz」という名前のファイルがダウンロードされます。ファイルはgz形式で圧縮されていますが、Lhaplusなどの解凍ソフトで解凍することができます。
FTPソフトからバックアップする方法
WordPressのファイルをダウンロードするもう一つの方法として、FTPソフトを使用する方法があります。私はFFFTPというソフトを使用しているのでFFFTPでの説明となりますが、どのソフトも操作上の大きな違いはないかと思います。
FFFTPでバックアップしたいWordPressサイトのフォルダのある場所へ行き、右クリック→ダウンロードでフォルダを丸ごとダウンロードします。
この方法ではファイルを圧縮せずにダウンロードするため、サーバーパネルからダウンロードする方法よりも時間がかかり、保存しておく際の要領もかさみます。
データベースのバックアップ
次にWordPressサイトの投稿記事などのデータが格納されているデータベースをバックアップする方法です。
こちらもエックスサーバー上での説明となりますので予めご留意下さい。
サーバーパネルにログインし、「phpmyadmin(MySQL5)」をクリックします。
ユーザー名とパスワードを入力します。
ユーザー名は「サーバーID+MySQLユーザー名」
パスワードはMySQLユーザー名のパスワードです。
※ユーザー名がわからない方はサーバーパネルの MySQL5設定→MySQLの一覧で確認することができます。
パスワードすら忘れちまったぜ!てへぺろ♪という方は、下図のMySQL5設定→MySQLユーザーの一覧→パスワードの変更からパスワードを再設定することができます。
phpmyadminにログインできた方は画面左側からバックアップするデータベースを選択します。
上部のメニューから「エクスポート」をクリック。
- 左上エクスポートという文字のすぐ下、全選択をクリック
- その下は「SQL」にチェックが入っているはずなのでそのままにしておく
- 右上DROP TABLE / VIEW / PROCEDURE / FUNCTIONを追加にチェックを入れる
- 下部「ファイルに保存する」と「zip形式」にチェックを入れる
以上を行った上で右下「実行する」をクリック。ファイルがダウンロードされます。
これでデータベースのバックアップは完了です。
テストのためWordPressを一旦削除
この項以降は私自身のバックアップテストも兼ねていますので、復旧をお急ぎの方はWordPressの復旧へどうぞ。
特に問題がない方はわざわざ削除して復旧する必要はありませんが、もし何かあった時にきちんとバックアップがとれておらず、サイトが復旧できないとなるとバックアップの意味がありません。
問題が発生する前に一度、できればサイトがまだ若いうちに復旧テストをしておくことをおすすめします。
それでは実際にサイトの復旧を行うために、一度サイトのファイルやデータを全て削除します。実際は全てのデータが消失してしまうことは考えづらいですが、全てバックアップしておけばどのデータが消えたり破損しても復旧することができます。
まずはWordPressのテンプレートやプログラムを削除します。FTPソフトでWordPressのファイルが置いてある場所へ行き、右クリック→削除。
私はルートディレクトリに置いていますが、インストールした時の設定によって異なる場合があります。
続いてサーバーパネルにログインしてMySQL5設定をクリック。
MySQLユーザの一覧→復旧するMySQLユーザを削除。
MySQLの一覧→復旧するデータベースを削除。
MySQLデータベースの削除(確定)をクリックします。
サーバーパネルへ戻り、自動インストール→「インストール済みのプログラム一覧」をクリック。今回復旧させるプログラム(WordPress)を削除します。
アンインストール(確定)をクリック。
これでWordPressサイトの全てのデータが削除されました。
WordPressの復旧
それでは今削除したWordPressサイトの復旧にとりかかります。順序としてはまず空のWordPressをインストールして、その後でバックアップしておいたデータを追加していきます。
データベースの作成
サーバーパネル→MySQL5設定から「MySQLユーザの追加」を選択。ユーザIDとパスワードを設定しますが、ユーザIDは必ず以前のものと同一にしてください。
次に「MySQLの追加」を選択。こちらもデータベース名は以前のものと同一に、また、文字コードはUTF-8にしておいて下さい。
「MySQLの一覧」をクリックして今作成したデータベースにユーザを追加します。アクセス権未所有ユーザの項から先ほどのユーザを選択して「追加」をクリックします。
WordPressの再インストール
今作成したデータベースにWordPressを再インストールします。インストールする前にサーバーパネル→「PHP Ver.切替」からPHPのバージョンが(推奨)のバージョンになっていることを確認しておきましょう。
今回はデータベースを予め作成していますので作成済みのデータベースを使用するという点だけ注意して下さい。
データベース名とデータベースユーザ名は先ほど復旧させたものを入力します。
あとは最初にWordPressをインストールした時と同じです。下記の記事もご参照下さい。
データベースの復旧
ここまでで空のWordPressを作成することはできたので、これから中身を戻していきます。
まずは投稿記事などのデータを復旧します。サーバーパネル→phpmyadmin(MySQL5)をクリック、IDとパスワードを入力してログインします。
左側にデータベースが表示されるので先ほど作成したものを選択。
インポートをクリック。
「ファイルを選択」→バックアップしておいたデータベースのデータ(データベース名.sql.zip)を選択してアップロードします。
データベースの復旧が完了しました。
これで投稿記事などのデータは全て復旧しましたが、このままでは記事ページやカテゴリーに正常にアクセスできません。一度管理画面に入って「設定」→「パーマリンク設定」で何も変更せずに「変更を保存」をクリックします。
これで記事データは復活しましたが、デザインがガタガタになっています。管理画面左側にある「外観」をクリックするとデフォルトのテンプレートファイルが適用され、とりあえずはまともな見た目になります。
テーマファイルのインストール
次に、もともと使用していたテーマファイルをインストールします。
私は子テーマを使用しているのでバックアップしておいたWordPressのファイルからアップロードしましたが、テーマファイルは中の設定が変わってしまうことがあり、その部分を修正しないままアップロードすると管理画面にログインできなくなってしまう場合があります。
そのためテーマファイルをある程度いじれる知識がない場合は、「管理画面」→「テーマ」からインストールし直すか、ダウンロードしてFTPソフトでアップロードしましょう。
アップロードが完了したら管理画面→外観→テーマに入り、使用するテーマを有効化します。
画像ファイルのアップロード
画像ファイルはWordPressのバックアップデータ(サイト名.tar.gz)のwp-contentフォルダの中、「uploads」にあります。FTPソフトで復活させたWordPressのwp-contentフォルダにアップロードしましょう。
プラグインのインストール
プラグインは必ず新たにインストールし直しましょう。こちらも色々と設定が変わってしまっているためバックアップデータからアップロードするとテーマファイル以上に危険です。
復旧完了
これでサイトは元通りになったはずです。
しかし、私の環境ではいくつかの画像ファイルがFTPソフトではアップロードできませんでした。
アップロードできなかった画像を調べてみると文字化けしていたようで、ファイル名を変更することでアップロードできたものの、なぜか記事中の画像がいくつか表示されないという現象に。
もしやとは思っていましたが、画像の名前に日本語を使っていたのがまずかったのでしょうか?
メディアライブラリを見ると認識されていない(?)様子。
調べてみてもイマイチ原因がわからなかったので、仕方なくFTPソフトではなく管理画面のメディアから追加すると直りました。しかし、この方法では画像のURLが変わってしまうため、画像を表示させている記事中のHTMLを全て書きなおさなければいけません。
この時点では10記事ほどしか書いていなかったものの、割りと画像の多いサイトのためかなりの手間。それなりに記事があった場合はたまったもんじゃありません。
文字化けしていた画像のバックアップファイルをチェックしてみると、共通してファイル名に‹や-などの文字が入っていました。しかし、それ以外でも文字化けしていたものもあったため完全には原因がわかりませんでした。
念の為にも画像のファイル名は半角のアルファベットと数字のみにして、日本語などの2バイト文字や妙な記号は使わないほうがいいかもしれません。