
MySQLを使っているのですが、
そのデータのバックアップをいつもphpMyAdminから
バックアップを取っていたのですが、
それを、WEB上からバックアップできるようにする方法です。
mysqldumpコマンドを使うためのPHPのsystem関数
こちらを参考にさせて頂きました。
XserverでPHP+mysqldump使ってDBをバックアップする方法
$dbHost = "データベースのホスト名";
$dbUser = "データベースのユーザー名";
$dbPass = "データベースのパスワード";
$dbName = "データベースの名前";
$filePath = "保存する場所への絶対パス";
$fileName = date('ymd').'_'.date('His').'.sql';
$command = "mysqldump ".$dbName." --host=".$dbHost." --user=".$dbUser." --password=".$dbPass." > ".$filePath.$fileName;
system($command);
//保存したらダウンロード
$dlFile = $filePath . $fileName; //ファイルパス
header('Content-Type: application/octet-stream'); //ダウンロードの指示
header('Content-Disposition: attachment; filename="' . $fileName . '"'); //ダウンロードするファイル名
header('Content-Length: '.filesize($dlFile)); //ファイルサイズを指定することでプログレスバーが表示される。
readfile($dlFile);
保存のファイルはテキスト形式でもよかったのですが、
SQLファイルにしました。
サーバーにもバックアップを保存しておきます。
バックアップを保存した後で、ダウンロードしています。
cronで時間指定して
自動バックアップも考えましたが、
今回は手動でバックアップを取ってダウンロードする方法にしました。



