WordPress: XREAでWP-DBManagerを使う

plug-in,WordPress

XREAで運用している某ブログに、WordPress用プラグイン「WP-DBManager」をインストールしました。

WP-DBManagerとは

WP-DBManagerは、WordPressのデータベースに対し、バックアップ/復元、最適化、修復などの操作を、手動/自動で行うためのプラグインです。

類似のプラグインとして「Portable phpMyAdmin」がありますが、Portable phpMyAdminはデータベース操作を行うための知識が必要です。

その点「WP-DBManager」は、詳しい知識がなくても簡単にデータベース操作が行えるのが特徴です。

WP-DBManagerの導入背景

WP-DBManagerを導入したのは、某ブログが突然アクセス不能になった事への対策です。

と言うのも、XREAのサポートにアクセス不能になった原因の調査を依頼したところ、「WordPress › フォーラム » MySQLのオーバヘッド蓄積によるトラブルについて」にもある、MySQLのオーバーヘッド蓄積によるトラブルが原因と思われるとのこと。

たしかに某ブログは管理に手を抜いていて、MySQLの最適化など行っていませんでしたが、まさかそれでアクセス不能に陥るとは…

このままでは再度アクセス不能になる恐れがあると感じたため、WP-DBManagerの自動最適化オプションを試してみようと思った次第です。

WP-DBManagerのインストール

WP-DBManagerをXREA環境で動作させるには、いくつかの面で工夫が必要でした。

プラグインのインストール

「WP-DBManager」は、WordPress管理画面からインストールできます。

  1. WordPress管理画面から「プラグイン」の「新規追加」を開く
  2. 「WP-DBManager」で検索
  3. “WP-DBManager”を探して「いますぐインストール」を押す

下記ページからダウンロードすることも可能ですので、都合の良い方法を選択してください。

バックアップ用フォルダに.htaccessを移動

バックアップ用フォルダを作成し、.htaccessでアクセス制限を行います。

  1. “wp-content/backup-db/"ディレクトリを新規作成
  2. “wp-content/backup-db/"のパーミッションを707に変更
  3. “wp-content/plugins/wp-dbmanager/"にある"htaccess.txt"を"wp-content/backup-db/"に移動
  4. 移動した"htaccess.txt"を、".htaccess"にリネーム。

PHPファイルをCGIモードで動作させる

XREAではPHPファイルの動作に制限がかけられているため、必要なファイルのみCGIモードで動作させる必要があります。

WordPressのルートフォルダにある".htacces"に以下の内容を追加します。

<files admin.php>
AddHandler application/x-httpd-phpcgi .php
</files>
<Files wp-cron.php>
AddHandler application/x-httpd-phpcgi .php
</Files>

もし".htacces"ファイルがない場合は、新規に作成してください。

mysqldumpとmysqlのパスを設定する

最期にWP-DBManagerのオプション画面で、mysqldumpとmysqlのパスを指定します。

管理画面の左サイドバーに追加された「Database」から「DB Options」の画面を開き、下記の設定を行います。

Path To mysqldump: /usr/local/mysql/bin/mysqldump
Path To mysql: /usr/local/mysql/bin/mysql

「DB Options」画面では、バックアップ先ディレクトリの指定や、バックアップ/最適化/リペアの自動化周期も設定可能です。必要に応じて見直しを行ってください。

動作確認

ここまでで、「WP-DBManager」が動作するようになったはずです。

確認のため、「Database」から「Backup DB」画面を開き、下部にある「Backup」ボタンを押してみましょう。

正常に設定できていれば、"wp-content/backup-db/"にバックアップファイルが作成されるはずです。

謝辞

WP-DBManagerのインストールでは、下記ブログの記事を参考にさせて頂きました。ありがとうございました。