ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
aaPanel(宝塔)

aaPanel/宝塔パネルのバックアップと移行:サイトとデータベースを新サーバーへ

7 ステップ 9 分で読めます 4 回閲覧 0
目次

日常のデータ保護にも、より高スペックな IMIDC サーバーへの乗り換えにも欠かせないのが aaPanel/宝塔パネルのバックアップとサイト移行です。この記事は Debian/Ubuntu、CentOS/Rocky/AlmaLinux 上の aaPanel・宝塔 Linux パネルが対象で、パネルの定期バックアップ、リモートストレージへの保存、一括移行プラグインの大まかな流れ、そして最も確実な手動移行(tar によるファイル圧縮と mysqldump によるデータベース出力)を解説し、最後に DNS 切り替えのチェックリストをまとめます。

ステップ1:宝塔パネルでサイトとデータベースの定期バックアップを設定する

パネル左メニューの「計画タスク(Cron)」で、種類に「サイトのバックアップ」と「データベースのバックアップ」を選んでタスクを作成します。対象サイトを選び、毎日深夜に実行、保存世代数はディスク容量に合わせて(例:7 世代)設定します。バックアップは既定で /www/backup に保存されます。

ls /www/backup/site /www/backup/database
du -sh /www/backup/*
df -h /www
同じサーバー内だけのバックアップは安全ではありません。ディスク障害や誤削除、侵入があればサイトと一緒に失われます。必ず別サーバーやオブジェクトストレージにもコピーを保管してください。

ステップ2:宝塔パネルのバックアップをリモートストレージに保存する

パネルのアプリストアで FTP や S3 互換オブジェクトストレージなどのストレージ系プラグインを検索・インストールし、接続情報を入力します。その後、計画タスクのバックアップ先をそのストレージに変更します。別の IMIDC サーバーを FTP や rsync のバックアップ先にすれば、遠隔地バックアップにもなります。

ステップ3:一括移行プラグインを使う(サーバー丸ごとの引っ越し)

パネル公式の一括移行プラグインを使う場合の一般的な流れは次のとおりです。新サーバーに同じパネルを導入し、パネル設定で API を有効にして旧サーバーの IP をホワイトリストに追加します。旧サーバーで移行プラグインをインストールし、新パネルのアドレスと API キーを入力、移行するサイト・データベース・FTP を選んで転送を待ちます。名称や画面はバージョンで変わるため、実際の表示に従ってください。新旧で PHP と MySQL のバージョンを揃えておくと安全です。

ステップ4:手動移行 — tar でサイト、mysqldump でデータベースを出力

プラグインが失敗した場合や一部のサイトだけ移したい場合は、手動移行が確実です。旧サーバーで以下を実行します(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/

ステップ5:新サーバーでサイトとデータベースを復元する

新サーバーのパネルで同じドメインのサイトと、同名のデータベース・ユーザーを作成し(パスワードを控える)、同じ 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_db

ステップ6:hosts ファイルで新サーバーをテストする

DNS を切り替える前に、手元の PC の hosts ファイルでドメインを新サーバーの IP に向け、トップページ、管理画面ログイン、アップロード、決済などを確認します。テスト後はこの行を削除してください。

# Windows: C:\Windows\System32\drivers\etc\hosts
# macOS / Linux: /etc/hosts
NEW_SERVER_IP  example.com  www.example.com

ステップ7:DNS 切り替えチェックリスト

  • 24〜48 時間前に A レコードの TTL を 300 秒程度に下げる
  • アクセスの少ない時間帯を選び、メンテナンスモードにするか管理画面での更新を止める
  • データベースを再度エクスポート・インポートし、アップロードディレクトリを rsync で差分同期する(下記コマンド)
  • A レコードを新 IP に変更し、新サーバーで SSL を発行・設定する
  • 旧サーバーのアクセスログを監視し、アクセスがなくなってから数日は旧サーバーを残しておく
# 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.8

よくある質問

移行後にパネルの初期ページや 404 が表示されます。

DNS がまだ反映されていない、www あり・なしのドメインが登録されていない、ドキュメントルートが旧サーバーと異なる、などが原因です。サイト設定のドメインとルートディレクトリを確認してください。

インポート時に文字コードや「Unknown collation」エラーが出ます。

新サーバーの MySQL が古く、utf8mb4_0900_ai_ci などの照合順序に対応していないことが多いです。同等以上のバージョンを入れるか、ダンプ内の照合順序を互換性のあるものに置き換えてください。

バックアップが大きく転送に時間がかかります。

サイト稼働中に rsync で一度フル同期しておき、切り替え時は差分同期だけにすれば、停止時間を数分に抑えられます。

上記の手順で解決しない場合は、サポートチケットから IMIDC の 24 時間 365 日対応テクニカルサポートへお問い合わせください。サーバー IP、OS のバージョン、実行したコマンド、エラー画面のスクリーンショットを添えていただくと、より早く原因を特定できます。

この回答はお役に立ちましたか?

関連チュートリアル