自宅サーバ × さくらインターネットで作る
WordPressミラーサイト構築手順(cron自動同期)
概要
本記事では、
- 自宅Linuxサーバを本番
- さくらインターネットをミラー(待機系)
として、
WordPressを自動同期する冗長構成を構築する手順を紹介します。
災害・回線障害・メンテナンス時に
即座にミラーへ切り替え可能な構成を目的としています。
全体構成図(論理)
[ 本番:自宅Linux ]
├ WordPress ( /var/www/stg1 )
├ MySQL (wordpress)
└ cron
│
├ mysqldump(DBバックアップ)
├ gzip(圧縮)
└ rsync / scp(ファイル同期)
↓
[ ミラー:さくらインターネット ]
├ WordPress(閲覧・検証用)
└ MySQL(mwakisaka1975_wp_mirror)
手順1:本番WordPressの確認
ApacheのDocumentRoot確認
grep -R "DocumentRoot" /etc/httpd/conf /etc/httpd/conf.d
本記事では以下を本番とする。
/var/www/stg1
手順2:本番DBのエクスポート
wp-config.phpでDB情報を確認
grep -E "DB_NAME|DB_USER|DB_HOST" /var/www/stg1/wp-config.php
mysqldump実行
mysqldump -h localhost -u wpuser -p wordpress > /root/wp_prod.sql
gzip -9 /root/wp_prod.sql
手順3:さくら側WordPress準備
- WordPressを新規インストール
- DBを作成(例)
- DB名:
mwakisaka1975_wp_mirror - ユーザー:同名
- DB名:
- wp-config.php をさくら用に修正
手順4:DBインポート(ミラー側)
- phpMyAdmin で 既存テーブルをすべて削除
wp_prod.sql.gzをインポート
手順5:URL差し替え(重要)
wp_options の以下2項目を変更
siteurlhome
UPDATE wp_options
SET option_value='https://mwakisaka1975.sakura.ne.jp/wakisaka-security'
WHERE option_name IN ('siteurl','home');
手順6:SSH公開鍵認証設定
本番サーバで鍵作成
ssh-keygen -t ed25519
公開鍵をさくら管理画面に登録
cat ~/.ssh/id_ed25519.pub
手順7:ファイル同期(rsync)
手動確認
rsync -avz --delete \
/var/www/stg1/ \
mwakisaka1975@www1359.sakura.ne.jp:/home/mwakisaka1975/www/mirror/
手順8:cronで自動同期
同期スクリプト作成
/root/bin/sync_mirror.sh
#!/bin/bash
SRC="/var/www/stg1/"
DST="mwakisaka1975@www1359.sakura.ne.jp:/home/mwakisaka1975/www/mirror/"
LOG="/var/log/rsync_mirror.log"
rsync -avz --delete \
-e "ssh -o BatchMode=yes -o StrictHostKeyChecking=accept-new" \
"$SRC" "$DST" >> "$LOG" 2>&1
chmod 700 /root/bin/sync_mirror.sh
cron登録(毎日3:10)
crontab -e
10 3 * * * /root/bin/sync_mirror.sh
注意点(重要)
- ❌ wp-config.php は同期しない
- ❌ ミラー側でプラグイン更新しない
- ✅ ミラーは閲覧・検証専用
- ✅ 本番が落ちたらDNS切り替えで復旧
まとめ
- 自宅サーバでも 実用的な冗長構成は可能
- cron+SSH鍵+rsyncで 完全自動化
- 災害・障害時の保険として非常に有効
この構成が向いている人
- WordPressを自宅運用している
- クラウド費用を抑えたい
- 自分で構成を理解したい
- 「落ちたら終わり」を避けたい
