WordPressのファイルとデータベースが何をしているのかと、バックアップについてザックリと

こんにちは。WordPress.org のフォーラムで、

  • サーバのトラブルでファイルが全部消えた
  • 4ヶ月前のバックアップファイルがあったので、アップロードしたら動いた
  • そしたら最近のコンテンツも表示された
  • 4ヶ月前のファイルなのに、なんでコンテンツが??どこに保存されているの?

という疑問を持たれた方がいらして、ちょっと教えてくださいということでしたので、昔作ったスライドに少し手を加えて説明してみようとおもいます。

超ザックリと言いますと、ファイル(WordPressの本体やテーマやプラグイン)というのは、ウェブサイトがどういう風に動くのかを決めています。

たとえば、トップページだったら最新10件の記事を順番に並べる、とか。

サイドバーには最新の記事を5件と、最新のコメントを5件と、カレンダーとブログオーナーのプロフィールを見せるぞ、とか。

お弁当カテゴリの2ページ目のアーカイブページには、お弁当カテゴリに属す記事を新しい順番に11件目から20件目まで並べるぞ、とか。のようなことです。

では、記事のデータはどこにあるのか?というと、それはデータベースに保存されています。データベースに保存されている情報は、

  • 誰が書いたか
  • いつ書いたか
  • いつ更新したか
  • 下書きなのか、公開されているのか
  • カテゴリはなにか
  • タグはなにか
  • タイトルは何か
  • コンテンツは何か

というようなことです。これがブログ内の全部の記事分データベースに保存されています。

(本当は、もっとものすごくいろいろな情報が保存されていますが省略します)

このように、

  • ファイルはどのように表示するのかを決めて
  • データベースに記事のコンテンツがある

という風に分かれています。ですから、新しい記事を更新した場合には、トップページに表示される最新の記事も更新されますし、「最近の投稿」ウィジェットに表示される記事のメンツも変わります。

新しい記事が表示された理由

さて、そういうわけですから、「ファイルが消えてしまって、5ヶ月前のバックアップファイルをアップしたのに、なんで最新の記事が表示されるの?」という疑問へのお答えは、「データベースは無事だったから」となります。

以下は、 safari というブラウザが、WordPressのブログのトップページを見に来た時の流れを模式的に説明している画像です。(画像は以前使ったスライドをちょっと直しています)

1. リクエスト

リクエストはURLにアクセスすることによって行われます。リクエストの発信元はブラウザで、受信しているのはサーバの中にいるWordPressです。

スクリーンショット 2015-09-08 22.12.00

2. WPがデータベースに情報を問い合わせ

ブラウザに聞かれたWordPressは、同じくサーバにいるデータベースに対して情報をもらいにいきます。

このサイトの設定では、トップページでは最新記事を10件だから、データベースに保存されているのを貰いに行こう!というわけです。

スクリーンショット 2015-09-08 22.12.08

3. データベースが情報をくれる

WPからデータを要求されたデータベースは、自分の中に保存されたデータの中から必要な物を抜き出して、WordPressに渡します。

スクリーンショット 2015-09-08 22.12.16

4. WordPressがHTMLを作ってブラウザに渡す

必要なデータをもらったWordPressは、トップページのHTMLを作成して、ブラウザに渡します。

スクリーンショット 2015-09-08 22.12.22

ブラウザに表示された!

その結果、ユーザーのブラウザ上にブログのトップページが表示されるのです。

考えてみると、WordPressはこれだけの複雑な処理を、誰かが訪問してくる度に毎回毎回実施して、HTMLを作っているわけで、すごいですよね。

バックアップについて

これらのことを踏まえると、バックアップしなくてはならないのは、

  • ファイル
  • データベース

の両方になります。

ファイルのバックアップは一番直感的なのはFTPで全部ダウンロードするというものです。データベースのバックアップは、phpMyAdmin の画面からデータをエクスポートするというものです。この時にエクスポートされるのは、sqlファイルという、データベースのデータを1枚のファイルにまとめたものです。このファイルがあれば別のデータベースに同じデータをインポートすることができます。

こうしたバックアップを手動で定期的に行なうのが面倒であるため、バックアッププラグインだったり、バックアップサービスだったりといった有料/無料のさまざまなプロダクトやサービスが存在しているということになると思います。

↓ プラグインを作る方々への本、書きました。 ↓

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です