この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
目次
エックスサーバー(XServer)にてバックアップを設定しよう
みなさんはサイトのバックアップは行っていますか?バックアップを行うことは極めて重要で、定期的にバックアップを行うことで不慮のトラブル(データ消失や不正アクセス、コンピュータウイルスの感染など)による被害を最小限に食い止めることができます。
今回はレンタルサーバーのエックスサーバー(XServer)にて、Wordpressの自動的なバックアップ方法をご紹介します。エックスサーバーではMySQLの復旧処理を管理画面から行えますが、復旧機能では以前のSQLデータの閲覧はできずに最新版との差異を確認できません。それなら定期的に自前で毎日バックアップを用意すれば良いだけの話というコンセプトで生まれた記事です(笑)。
バックアップ方法
今回は毎朝3時に下記のファイル名でバックアップを取ります。
まず完成予想図を見てみましょう。「backup」フォルダを生成して、下の階層にbackup.phpを設置する。後は毎日「web_[日付].zip」「mysql_[日付].sql」が増えていく仕組みです。
┗ backup
┣ backup.php
┣ web_[日付].zip
┣ mysql_[日付].sql
┣ (中略)
┣ web_[日付].zip
┗ mysql_[日付].sql
※容量のいっぱいになる問題はほぼ発生しないと思いますので、安全のためにバックアップファイルを削除する処理は行いません。心配な方はバックアップファイルをPCなどのローカルエリアにコピーした際に、古いバックアップは手動で削除してください。
バックアップ手順
backup.phpのプログラム
ではbackup.phpの中身を確認しましょう。
backup.phpのプログラムを記述します。
カッコ()で囲った部分にはご自身のサーバー情報に置き換えて下さい。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php var_dump('--backup_start--'); //日付の取得 $date = date('Ymd'); //mysqlのバックアップ $cmd = 'mysqldump -h(mysqlのホスト名) -u(mysqlのユーザー名) -p(mysqlのパスワード) (バックアップ対象のデータベース名) > /home/(アカウントID)/backup/mysql_' . $date . '.sql'; shell_exec($cmd); //ウェブのバックアップ $cmd = 'zip -r /home/(アカウントID)/backup/web_' . $date . '.zip /home/(アカウントID)/(バックアップ対象のドメイン名)/public_html'; shell_exec($cmd); var_dump('--backup_end--'); |
backup.phpのサンプル例
サーバーID「hogehoge」でドメイン「example.com」をバックアップした例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<?php var_dump('--backup_start--'); //日付の取得 $date = date('Ymd'); //mysqlのバックアップ $cmd = 'mysqldump -hmysql.example.com -uhogehoge -phoge1234 hogehoge > /home/hogehoge/backup/mysql_' . $date . '.sql'; shell_exec($cmd); //ウェブのバックアップ $cmd = 'zip -r /home/hogehoge/backup/web_' . $date . '.zip /home/hogehoge/example.com/public_html'; shell_exec($cmd); var_dump('--backup_end--'); |
自分のMySQL情報が分からない方へ
WordPressが設置している場所にあるwp-config.phpの中身を確認しましょう。ファイルの上部にMySQLの情報が記述されているので、メモを取りましょう。
1 2 3 4 5 6 7 8 9 10 11 12 |
// ** MySQL 設定 - この情報はホスティング先から入手してください。 ** // /** WordPress のためのデータベース名 */ define('DB_NAME', '(ココにMySQLのデータベース名)'); /** MySQL データベースのユーザー名 */ define('DB_USER', '(ココにMySQLのユーザー名)'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', '(ココにMySQLのパスワード)'); /** MySQL のホスト名 */ define('DB_HOST', '(ココにMySQLのホスト名)'); |
CRON(定期処理の設定)の設定
次に「アカウント」>「Cron設定」>「CRONの追加」に移行して、毎日午前3時に自動でバックアップ処理を行うように設定しましょう。
コピーがし易いように設定内容はテキストでも記述します。
時間 :3
日 :*
月 :*
曜日 :*
コマンド:/usr/bin/php7.0 /home/(サーバーID)/backup/backup.php
コメント:(自由に設定して下さい)
さいごに
今回の対応で毎日バックアップデータが作成されます。
ただ自分の手元にあるわけではないので、週1でも良いので自分のパソコンにバックアップファイルをダウンロードすることを忘れないようにしてくださいね。