Start typing to search across invoices, services, domains, tickets, and more...
日常のデータ保護にも、より高スペックな IMIDC サーバーへの乗り換えにも欠かせないのが aaPanel/宝塔パネルのバックアップとサイト移行です。この記事は Debian/Ubuntu、CentOS/Rocky/AlmaLinux 上の aaPanel・宝塔 Linux パネルが対象で、パネルの定期バックアップ、リモートストレージへの保存、一括移行プラグインの大まかな流れ、そして最も確実な手動移行(tar によるファイル圧縮と mysqldump によるデータベース出力)を解説し、最後に DNS 切り替えのチェックリストをまとめます。
パネル左メニューの「計画タスク(Cron)」で、種類に「サイトのバックアップ」と「データベースのバックアップ」を選んでタスクを作成します。対象サイトを選び、毎日深夜に実行、保存世代数はディスク容量に合わせて(例:7 世代)設定します。バックアップは既定で /www/backup に保存されます。
ls /www/backup/site /www/backup/database
du -sh /www/backup/*
df -h /wwwパネルのアプリストアで FTP や S3 互換オブジェクトストレージなどのストレージ系プラグインを検索・インストールし、接続情報を入力します。その後、計画タスクのバックアップ先をそのストレージに変更します。別の IMIDC サーバーを FTP や rsync のバックアップ先にすれば、遠隔地バックアップにもなります。
パネル公式の一括移行プラグインを使う場合の一般的な流れは次のとおりです。新サーバーに同じパネルを導入し、パネル設定で API を有効にして旧サーバーの IP をホワイトリストに追加します。旧サーバーで移行プラグインをインストールし、新パネルのアドレスと API キーを入力、移行するサイト・データベース・FTP を選んで転送を待ちます。名称や画面はバージョンで変わるため、実際の表示に従ってください。新旧で PHP と MySQL のバージョンを揃えておくと安全です。
プラグインが失敗した場合や一部のサイトだけ移したい場合は、手動移行が確実です。旧サーバーで以下を実行します(example.com と example_db はご自身のディレクトリとデータベース名に置き換え)。--single-transaction を付けるとテーブルをロックせずに整合性のある InnoDB ダンプが取れます。
# On the OLD server
mkdir -p /root/migrate && cd /root/migrate
tar -czf example.com.tar.gz -C /www/wwwroot example.com
# Export the database (consistent dump for InnoDB, keeps utf8mb4)
mysqldump -uroot -p --single-transaction --routines --triggers \
--default-character-set=utf8mb4 example_db | gzip > example_db.sql.gz
# Copy the Nginx vhost and rewrite rules for reference
cp /www/server/panel/vhost/nginx/example.com.conf /root/migrate/
cp /www/server/panel/vhost/rewrite/example.com.conf /root/migrate/rewrite-example.com.conf 2>/dev/null
ls -lh /root/migrate続いて rsync で新サーバーへ転送します。中断しても再開でき、大容量ファイルでも scp より扱いやすいです。
# Debian / Ubuntu
apt install -y rsync
# CentOS / Rocky / AlmaLinux
yum install -y rsync
# Push the files to the NEW IMIDC server
rsync -avP -e "ssh -p 22" /root/migrate/ root@NEW_SERVER_IP:/root/migrate/新サーバーのパネルで同じドメインのサイトと、同名のデータベース・ユーザーを作成し(パスワードを控える)、同じ PHP 拡張を入れておきます。その後ファイルを展開して所有者を修正し、データベースをインポートします。パスワードが変わった場合は wp-config.php などの設定ファイルも更新してください。リライトルールと SSL はサイト設定で再設定します(「宝塔パネルでのサイト作成と SSL」記事を参照)。
# On the NEW server, after creating the site and the empty database in the panel
cd /root/migrate
tar -xzf example.com.tar.gz -C /www/wwwroot/
chown -R www:www /www/wwwroot/example.com
gunzip < example_db.sql.gz | mysql -uexample_db -p example_dbDNS を切り替える前に、手元の PC の hosts ファイルでドメインを新サーバーの IP に向け、トップページ、管理画面ログイン、アップロード、決済などを確認します。テスト後はこの行を削除してください。
# Windows: C:\Windows\System32\drivers\etc\hosts
# macOS / Linux: /etc/hosts
NEW_SERVER_IP example.com www.example.com# Final sync of uploads changed since the first copy (run on the OLD server)
rsync -avP /www/wwwroot/example.com/ root@NEW_SERVER_IP:/www/wwwroot/example.com/
# Verify DNS after switching
dig +short example.com A
nslookup example.com 8.8.8.8DNS がまだ反映されていない、www あり・なしのドメインが登録されていない、ドキュメントルートが旧サーバーと異なる、などが原因です。サイト設定のドメインとルートディレクトリを確認してください。
新サーバーの MySQL が古く、utf8mb4_0900_ai_ci などの照合順序に対応していないことが多いです。同等以上のバージョンを入れるか、ダンプ内の照合順序を互換性のあるものに置き換えてください。
サイト稼働中に rsync で一度フル同期しておき、切り替え時は差分同期だけにすれば、停止時間を数分に抑えられます。
上記の手順で解決しない場合は、サポートチケットから IMIDC の 24 時間 365 日対応テクニカルサポートへお問い合わせください。サーバー IP、OS のバージョン、実行したコマンド、エラー画面のスクリーンショットを添えていただくと、より早く原因を特定できます。