この記事を書く人と信憑性
家富正幸(いえとみまさゆき)
現役のWordPressエンジニア(エンジニア歴16年)
大規模から小規模までのWordPressテーマ開発実績数は800件以上
WordPressで構築されたクライアントのウェブサイトを保守する立場から、手動バックアップの方法について記事を執筆していきます。
はじめに
管理しているサイトが飛んでしまったら・・
収益を生んでいるサイトが飛んでしまったら・・
考えただけでも「ゾッと」しますよね・・
本日は、考えただけでも恐ろしい、最悪な状況に陥ってしまった時のための保険とも言えるWordPressのバックアップを手動で取る方法についてご説明したいと思います。
あなたはどういった方法でWordPressのバックアップを取られていますでしょうか?
このバックアップの方法についてWebで検索をしてみると、プラグインでのバックアップ方法を説明しているブログなどをよく目にしますが、あなたはプラグイン側でどういった処理を行っているか、具体的に確認したことや正しく理解していますか?
プラグインにすべて任せてるから安心!
という方もたくさんいらっしゃると思いますが、もしバックアップが必要な時に、そのプラグインが正しく動作しなかったらバックアップや、そのデータの復元作業を、プラグインに頼らず行える自信がありますか?
ご自身の大切なデータなのですから、他人の作ったシステム任せにするのではなく、いざというときのために、手動でデータをバックアップ・復元できる、知識は必ず持っておくべきです。
今回は、手動によるバックアップ方法についてご説明します。
データのバックアップ
WordPressのデータをバックアップするためには、まずどういったデータをバックアップするべきか、具体的なバックアップ対象を確認しておく必要があります。
WordPressでバックアップが必要なのは、以下に示す5つです。
- テーマファイル一式
- プラグイン一式
- データベース内容一式
- アップロードファイル一式
- wp-config.php
基本的にはこれ以外のバックアップは、必要ないと考えてもらってOKです。
WordPressの本体ファイルはいつでもオフィシャルサイトから最新版のデータをダウンロードすることができますので、わざわざ複雑な本体ファイルをバックアップする必要はありません。
しかしながら、本体ファイルに改変を加えている場合は別です。
が、本体ファイルに改変を加えるということは、バックアップに手間がかかるだけではなく、バージョンアップの場合にも、本体を更新したらサイトが動かなくなるという、大きな問題を抱えることになりますので、通常は行うべきではありません。
安易に本体改造を勧めるサイトや、ブログの記事をよく目にしますが、その紹介されているコードは、WordPressの流儀や本来のカスタマイズ方法を知らない素人の方が書いた記事が多い印象です。
そのコードがどういった影響を及ぼすのか、なぜその場所の改造が必要になるのか、ご自身で意味が分からない場合には絶対に行わないようにしてください。
話が脱線してしまいましたが、基本的には上記の内容をバックアップするだけで事足ります。
バックアップするファイルの詳細
それでは、先ほどのバックアップ対象について、より深く掘り下げてみます。
データベースを除くファイルのバックアップは、WordPressをインストールしたディレクトリの、以下のディレクトリとファイルをバックアップしてください。
/wp-content/themes/{テーマ名}/
/wp-content/plugins/
/wp-content/uploads/
/wp-config.php
最低限のバックアップは上記で問題ありません。
ただ、プラグインなどによっては、/wp-content/ ディレクトリ内に独自のデータを保存し、利用しているケースがあります。
もし判断がつかない場合には、/wp-content/ ディレクトリを丸ごとバックアップしても、問題はありません。
確実なことが不明であれば、/wp-content/ ディレクトリをそのままバックアップするのが、安心できる方法でしょう。
バックアップを行う際の文字コード
ファイルをバックアップする際に注意していただきたいのが、FTP接続時の
「エンコーディング指定(文字コード指定)」
です。
WordPressではメディア管理機能があり、そちらに写真などをファイルをアップロードして、ブログのアイキャッチ画像や添付ファイルなどを管理しますが、そのファイルが日本語名称の場合などが多々あると思います。
WordPressではそういったファイルを、/wp-content/uploads/ 以下に保存するのですが、WP Multibyte Patchプラグインを利用している場合を除き、そのときのファイル名には、アップロードされた時のファイル名をそのまま利用します。
そして、通常はUTF-8の文字コードを使って、データを保存しています。
FTPソフトは多々ありますが、どのFTPソフトにも接続時のエンコーディング指定(文字コード指定)というのがあり、通常は「自動」といった内容になっていることが多く、その場合にサーバー上の日本語ファイル名が文字化けしていることがあります。
もし文字化けしているままダウンロードしてしまうと、文字化けしているデータが手元に残ることになり、復元した場合にリンク切れが発生することになります。
FTPソフトでの接続は、エンコーディング指定(文字コード指定)を必ず「UTF-8」に指定し、接続するようにしてください。
データベースのバックアップツール
次にデータベースのバックアップを行いましょう。
通常はサーバーに「PHPMyAdmin」や「Plesk」といった、データベースの管理ツールが存在する場合が多いのですが、もし簡単に使える管理ツールが存在しない場合、以下のツールが非常に役に立ちます。
Adminer
https://www.adminer.org/
これは1ファイルで動作するデータベース管理ツールで、PHPMyAdminの簡易版のようなものです。
簡易版といってもPHPMyAdminでできることは、ほとんどすべて行うことができるうえ、インターフェースも簡略化されて見やすいので、とても使いやすいです。
私はPHPMyAmdinが使える場合でも、こちらのツールを利用して対応することの方が多いです。
データベースのバックアップ方法
データベースのバックアップは、wp-config.php に記載されている接続情報をたよりに、バックアップするデータベースとテーブルを判断しましょう。
1つのデータベースに、複数のWordPressがインストールされていたり、そのほかのシステムがインストールされている場合、どのテーブルをバックアップすればよいのか、判断に迷う場合があります。
そんな時は wp-config.php の、テーブルプレフィクスを確認してください。
テーブルプレフィクスの値が wp_ となっていれば、データベース内の以下のテーブルが対象となります。
wp_posts
wp_postmeta
wp_users
wp_usermeta
wp_terms
wp_term_taxonomsy
wp_term_relationships
wp_options
wp_comments
wp_commentmeta
wp_links
wp_termmeta (WordPressバージョン 4.2.2以上)
もし、テーブルプレフィクスが site_ 等となっていた場合、上記のテーブル一覧は、
site_posts
site_postmeta
site_users
…
といった名称になります。
WordPressの基本的なテーブルであれば、上記で示した12テーブル(バージョン4.2.2未満であれば11テーブル)をバックアップすればよいのですが、プラグインの中には独自のテーブルを作るものがあります。
そういった場合、とりあえずテーブルプレフィクスが同一のものは、すべてバックアップをとっておけば安心です。
ただし、複数のWordPressがインストールされている時に、テーブルプレフィクスが似ていることがあり、その場合には若干注意が必要です。
サイトA:wp_
サイトB:wp_site_
のような状況だと、
wp_posts
wp_site_posts
といった具合に、似たテーブル名称ができていますので、違うWordPressのテーブルをバックアップしていて、必要なWordPressのテーブルがバックアップされていなかった・・
という事態が起こらないよう注意が必要です。
さらに注意となりますが、プラグインが独自にテーブルを作成する場合には、開発の明確なルールがあり、
wp-config.php に設定されたテーブルプレフィクスを、必ず独自のテーブルにもつけることが義務づけられています。
ただ、中にはそういったルールを無視し、テーブルプレフィクスをつけずに、勝手なテーブルを追加するプラグインも存在します。
今流通しているメジャーなプラグインでは、そういったことは確認できませんが、古いプラグインや、WordPressの公式ディレクトリ以外からダウンロードしたプラグインなどでは、そういったルールを無視する不届きなプラグインが存在することが、今までに何度かありました。
そういった場合、どのテーブルをプラグインが作ったのか、判別をするのが非常に難しい状況になります。
もし心当たりがあり、判別がつかない場合には、やむを得ず全テーブルをバックアップするのも、視野にいれておきましょう。
さいごに
以上がWordPressの手動バックアップの方法です。
基本的にはどんなバックアッププラグインも、上記の内容をシステマチックに行っているものが多いです。
手動でのバックアップ方法を知っておくことで、万が一プラグインが動作しなかった場合でも、確実なバックアップを取得することができます。
すべてを他人が作ったシステムに依存するのも、手軽でコストもかからないため魅力的ですが、何かあったときに内部がブラックボックスだと、手を出すことができず、結局はコストが発生することになります。
自分自身の大切なデータのバックアップ方法については、最低限理解しておくようにしたほうが、より安心したサイト運営が可能になります。