phpMyBackupProのインストール
phpMyAdminは、MySQLをGUIで手軽に管理できるツールとして定番ですが、同様にバックアップ専用に特化した「phpMyBackupPro」というツールがあります。
これもphpMyAdminと同じで、PHPで動作するものです。
1. ファイルのダウンロード
2. インストール
解凍したphpMyBackupProファイルの中の「phpMyBackupPro」以下のディレクトリを任意のWEBサーバのディレクトリにコピーします。
※セキュリティ上、公開ドキュメントルート以下にコピーするのは、避けた方が良いと思われます。
ここでは、「/usr/local」にコピーして、「/usr/local/phpMyBackupPro」とします。
それから「phpMyBackupPro」直下の
- 「global_conf.php」ファイル
- 「export」フォルダ
のパーミッションを「0777」に変更します。
# cd /www/pmbp
# chmod 777 global_conf.php
# chmod -R 777 export
次にApacheの「httpd.conf」でAlias設定を追加します。
Alias /pmbp /usr/local/phpMyBackupPro
<Directory "/usr/local/phpMyBackupPro">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from All
</Directory>
設定が完了したら、Apacheを再起動します。
※この場合は、「http://(サーバのドメイン名)/pmbp/」でアクセスします。
なお、共用サーバ等を利用している場合には、上記のような設定はできませんので、この場合には、公開ドキュメントルート以下にコピーします。
その場合も「global_conf.php」、「export」のパーミッションを「0777」に変更します。
3. 設定
(1) インストールしたURLにアクセスします。
ここで、
The file global_conf.php is not writeable!
The directory export/ is not writeable!
などのエラーメッセージが表示された場合には、パーミッションを「0777」に設定します。
また、
MySQL data is not correct!
というエラーは、ここでは無視します。
※まだ何にも設定していないので当然!
(2) 「configuration」タブをクリックします。
- sitename:WEBサーバのドメイン名(FQDN)
- language:「japanese」
を入力したら、とりあえず「save data」ボタンをクリックします。
これで日本語表示に切り替わります。
次に「SQLデータ」カテゴリーで
- MySQLホスト名
- MySQLユーザ名
- MySQLパスワード
を入力します。
また、「このデータベースのみ」項目は、バックアップを行うDBを限定する場合ですので、通常は空白にします。
上記項目を入力したら、「データ保存」ボタンをクリックします。
「データの保存に成功しました!」というメッセージが表示されたらOKです。
なお、「FTPでバックアップ」はバックアップを実行後指定のFTPサーバへアップロードする場合、「電子メールでバックアップ」は、バックアップファイルを電子メールで送信する場合に指定しますが、ここではそのままにします。
4. バックアップ
「バックアップ」タブをクリックします。
バックアップしたいDBを選択して、「バックアップ」ボタンをクリックします。
「次のようにファイルの保存に成功しました: mysql.1231311039.sql」
というようなメッセージが表示されれば、正常にバックアップされたことになります。
なお、各ファイルはテキスト形式で、phpMyAdminのSQL形式でエクスポートしたファイルと同じです。
※ただし、圧縮オプションを付けた場合には、圧縮ファイルとなります。
5. インポート
「インポート」タブをクリックすると、今までバックアップされたファイルの一覧が表示されます。
バックアップファイルをMySQLに戻す時に使用します。
6. スケジュールバックアップ
この「スケジュールバックアップ」は、バッチ処理でバックアップを行うためのスクリプトを作成してくれる機能です。
まぎらわしいですが、スクリプトを作成するだけで、自動的にバックアップを取ってくれる訳ではありません。
※私が試した場合では、作成したスクリプトを実際に動作させようとしても、そのままでは上手く動きませんでした。
そこで、次項のように付属の「backup.php」をcronで実行する方法を行います。
7. バックアップの定期実行処理
phpMyBackupProに付属の「backup.php」を使用します。
使用方法のマニュアルは、phpMyBackupProのパッケージファイルの中に「SHELL_MODE.txt」というファイルがあります。
パラメータは以下のように指定します。
php backup.php db1,db2,db3 1 0 0 1 path1,path2
バックアップするデータベース名。
複数の場合には、カンマで区切ります。
テーブルのエクスポート(1:する、0:しない)。
データのエクスポート(1:する、0:しない)。
「drop table」の付加(1:する、0:しない)。
※SQL文に「drop table」を付加するかどうか。
バックアップファイルの圧縮(1:する、0:しない)。
※gzipかzip形式で圧縮。
FTPサーバ上での出力ディレクトリ名(相対パス)。
複数の場合には、カンマで区切ります。
※FTPサーバでのバックアップ保存を有効にする必要があります。
次に、cron実行用に「/www/pmbp/backup.sh」というシェルスクリプトファイルを作成します。
内容のサンプルを以下に記載します。
※実行環境に合わせて適宜変更して下さい。
#!/bin/sh
cd /www/pmbp
/usr/local/bin/php backup.php db1,db2,mysql 1 1 1 0
※db1、db2、mysqlのDBをバックアップ。(デフォルトでは「export」フォルダに出力されます。)
※ローカルでの出力ディレクトリを変更したい場合には、「definitions.php」の「$_PMBP_EXPORT_DIR」を書き換える必要があります(相対パス)。
※テーブルのエクスポートあり、データのエクスポートあり、「drop table」の付加あり、圧縮なし。
なお、cronで実行した場合に、phpを絶対パスで指定しないと、うまく実行できない場合がありますので注意して下さい。
上記「backup.sh」をcronで設定します。
設定は以下のようにします。
0 1 * * * /bin/sh /www/pmbp/backup.sh > /dev/null 2>&1
※毎日深夜1時にバックアップを実行。
最終更新:2018年05月11日 15:10