Cách Backup Restore Dữ Liệu An Toàn Trước Khi Rời cPanel

21/05/2026 · P T P · Chung

Cách backup và restore dữ liệu trước khi chuyển sang panel thay cPanel

Chuyển từ cPanel sang panel khác như DirectAdmin, CyberPanel, aaPanel, Plesk, Webuzo, ISPConfig hay CloudPanel có thể giúp giảm chi phí, tăng quyền kiểm soát, tối ưu tài nguyên. Nhưng rủi ro lớn nhất không nằm ở giao diện mới. Rủi ro lớn nhất nằm ở dữ liệu.

Website mất file, database lỗi charset, email không đủ thư, DNS trỏ sai, SSL hỏng, cron không chạy. Một bước thiếu kiểm tra có thể biến việc đổi panel thành sự cố downtime dài. Vì vậy, trước khi chuyển, cần backup đúng, kiểm tra đủ, restore có kế hoạch.

Bài này hướng dẫn quy trình backup và restore dữ liệu trước khi rời cPanel, theo hướng thực tế, dễ làm, ít rủi ro.

Vì sao cần backup kỹ trước khi đổi panel?

Panel khác nhau dùng cấu trúc thư mục, định dạng backup, cách quản lý email, DNS, database khác nhau. File từ cPanel không phải lúc nào cũng import thẳng sang panel mới.

Backup kỹ giúp:

Khôi phục nhanh nếu migration lỗi.
So sánh dữ liệu sau khi restore.
Giảm downtime khi chuyển DNS.
Giữ nguyên email cũ nếu dùng mail nội bộ.
Tránh mất database do dump thiếu bảng, sai encoding, thiếu trigger.
Có đường lùi nếu panel mới không phù hợp.

Nguyên tắc quan trọng: không xóa hosting cPanel cũ cho đến khi website, email, cron, SSL, DNS trên panel mới chạy ổn ít nhất 3-7 ngày.

Cần backup những gì?

Trước khi chuyển panel, không chỉ backup mã nguồn website. Cần đủ toàn bộ thành phần vận hành.

1. File website

Thường nằm tại:

/home/user/public_html
– Addon domain: /home/user/domain.com
– Subdomain: thư mục riêng trong home
– App riêng: Laravel, Node.js, Python có thể nằm ngoài public_html

Cần backup:

– Source code
– File upload: ảnh, video, tài liệu
– File cấu hình: .env, wp-config.php, configuration.php
– File ẩn: .htaccess, .user.ini
– Thư mục cache nếu cần
– File license, plugin, theme custom

Lưu ý: nhiều công cụ FTP không hiển thị file ẩn. Cần bật “show hidden files”.

2. Database

Website WordPress, Joomla, Magento, Laravel, forum, CRM thường dùng MySQL/MariaDB.

Cần ghi lại:

– Tên database
– User database
– Password database
– Charset/collation
– Phiên bản MySQL/MariaDB
– Trigger, view, stored procedure nếu có

Backup bằng phpMyAdmin được, nhưng website lớn nên dùng command line với mysqldump để ổn hơn.

3. Email

Nếu đang dùng email theo domain trên cPanel, cần backup:

– Tài khoản email
– Mật khẩu email nếu còn lưu được
– Mailbox: Inbox, Sent, Archive, custom folders
– Forwarder
– Email filter
– Autoresponder
– Mailing list nếu có

Email thường nằm trong:

/home/user/mail
/home/user/etc

Nhưng panel mới có thể dùng cấu trúc khác. Cách an toàn hơn: đồng bộ qua IMAP bằng công cụ như imapsync.

4. DNS records

Cần xuất hoặc ghi lại toàn bộ DNS zone:

– A record
– AAAA record
– CNAME
– MX
– TXT
– SPF
– DKIM
– DMARC
– SRV nếu có
– Subdomain
– Record cho dịch vụ ngoài: Google Workspace, Microsoft 365, Mailchimp, Zoho, CDN

Sai DNS có thể làm website hoạt động nhưng email chết, hoặc ngược lại.

5. SSL, cron, redirect, cấu hình đặc biệt

Cần lưu:

– SSL certificate nếu dùng cert riêng
– Cron jobs
– Redirect trong cPanel
– PHP version
– PHP extensions
php.ini, .user.ini
– Node/Python app config
– SSH key
– FTP account
– Backup schedule
– Firewall rule nếu có

Các cách backup từ cPanel

Cách 1: Full Account Backup

Trong cPanel, vào:

Files → Backup → Download a Full Account Backup

Ưu điểm:

– Nhanh
– Gói gần như toàn bộ account
– Hữu ích nếu panel mới hỗ trợ import cPanel backup

Nhược điểm:

– File lớn
– Không phải panel nào cũng restore trực tiếp được
– Khó chọn từng phần
– Nếu tài khoản có nhiều domain, restore từng website có thể rối

Nên dùng full backup như bản dự phòng chính, không phải nguồn restore duy nhất.

Cách 2: Backup thủ công file và database

Dùng File Manager, FTP/SFTP, hoặc SSH.

Nén file:

cd /home/user
tar -czf website-files.tar.gz public_html

Dump database:

mysqldump -u db_user -p --single-transaction --routines --triggers db_name > db_name.sql

Nén database:

gzip db_name.sql

Ưu điểm:

– Kiểm soát tốt
– Dễ restore sang panel bất kỳ
– Phù hợp website lớn
– Dễ chia nhỏ từng domain

Nhược điểm:

– Cần biết đường dẫn, database nào thuộc website nào
– Cần SSH nếu dữ liệu lớn

Cách 3: Backup bằng plugin CMS

Với WordPress, có thể dùng UpdraftPlus, Duplicator, All-in-One WP Migration, WPvivid.

Ưu điểm:

– Dễ dùng
– Phù hợp người không rành SSH
– Có thể backup lên Google Drive, Dropbox, S3

Nhược điểm:

– Website lớn dễ timeout
– Không backup email, DNS, cron
– Plugin lỗi nếu hosting giới hạn tài nguyên

Nên dùng plugin như bản phụ, không thay thế backup cấp hosting.

Checklist trước khi chuyển panel

Trước ngày chuyển, cần làm danh sách rõ:

Giảm TTL DNS xuống 300 giây trước 24-48 giờ.
– Kiểm tra dung lượng source và database.
– Kiểm tra phiên bản PHP hiện tại.
– Kiểm tra extension PHP cần thiết.
– Ghi lại cron jobs.
– Ghi lại DNS records.
– Tạo full backup cPanel.
– Tạo backup file riêng.
– Tạo backup database riêng.
– Backup email nếu đang dùng mail nội bộ.
– Tải bản backup về máy local hoặc lưu sang cloud riêng.
– Kiểm tra file backup có mở được không.
– Không chỉ để backup trên server cũ.

Sai lầm phổ biến: backup xong nhưng không tải ra ngoài. Nếu server cũ lỗi hoặc bị khóa, backup cũng mất.

Cách restore dữ liệu sang panel mới

1. Chuẩn bị môi trường mới

Trên panel mới, tạo:

– Domain
– Database
– Database user
– Email account nếu dùng mail nội bộ
– PHP version tương thích
– SSL tạm nếu có thể
– FTP/SFTP/SSH user

Cài PHP extension cần thiết. Với WordPress thường cần:

mysqli
curl
zip
mbstring
imagick
xml
intl
gd

Với Laravel cần thêm Composer, queue, cron, permission đúng.

2. Restore file website

Upload file backup lên server mới bằng SFTP/SSH. Giải nén vào đúng document root.

Ví dụ:

tar -xzf website-files.tar.gz -C /home/newuser/domain.com/

Kiểm tra owner và permission:

chown -R newuser:newuser /home/newuser/domain.com/
find /home/newuser/domain.com/ -type d -exec chmod 755 {} ;
find /home/newuser/domain.com/ -type f -exec chmod 644 {} ;

Với Laravel, cần writable:

chmod -R 775 storage bootstrap/cache

3. Restore database

Tạo database mới trên panel. Import:

gunzip db_name.sql.gz
mysql -u new_db_user -p new_db_name < db_name.sql

Sau đó sửa file cấu hình website:

WordPress:

define('DB_NAME', 'new_db_name');
define('DB_USER', 'new_db_user');
define('DB_PASSWORD', 'new_password');
define('DB_HOST', 'localhost');

Laravel .env:

DB_DATABASE=new_db_name
DB_USERNAME=new_db_user
DB_PASSWORD=new_password
DB_HOST=127.0.0.1

Nếu domain đổi, cần search-replace URL trong database. Với WordPress, dùng WP-CLI tốt hơn sửa SQL tay:

wp search-replace 'https://old-domain.com' 'https://new-domain.com' --skip-columns=guid

4. Restore email

Nếu panel mới hỗ trợ import maildir từ cPanel, có thể copy từ /home/user/mail. Nhưng an toàn nhất vẫn là IMAP sync.

Ví dụ:

imapsync --host1 old.server.com --user1 [email protected] --password1 'oldpass' --host2 new.server.com --user2 [email protected] --password2 'newpass'

Làm từng mailbox. Sau khi sync, kiểm tra:

– Số lượng email
– Thư mục Sent
– Thư mục Archive
– Email mới gửi/nhận
– Webmail login
– IMAP/SMTP trên điện thoại, Outlook

Nếu dùng Google Workspace hoặc Microsoft 365, không cần migrate mailbox trên hosting. Chỉ cần giữ MX/TXT đúng.

5. Khôi phục DNS records

Tạo DNS zone trên panel mới hoặc DNS provider ngoài như Cloudflare.

Cần nhập lại:

– A record trỏ về IP server mới
– CNAME cho www
– MX record
– SPF TXT
– DKIM TXT
– DMARC TXT
– Subdomain
– Record xác minh dịch vụ ngoài

Ví dụ SPF:

v=spf1 a mx ip4:SERVER_IP ~all

DMARC cơ bản:

v=DMARC1; p=none; rua=mailto:[email protected]

DKIM thường lấy từ panel mới, không dùng lại mù quáng từ server cũ nếu mail server đổi.

Kiểm tra trước khi đổi DNS chính thức

Không nên trỏ DNS ngay sau restore. Cần test bằng hosts file.

Trên máy cá nhân, thêm dòng:

NEW_SERVER_IP domain.com www.domain.com

Windows:

C:WindowsSystem32driversetchosts

macOS/Linux:

/etc/hosts

Sau đó mở website và kiểm tra:

– Trang chủ
– Trang đăng nhập admin
– Form liên hệ
– Upload ảnh
– Giỏ hàng/thanh toán
– Đường dẫn tĩnh
– Redirect HTTP sang HTTPS
– SSL
– Cron
– Email gửi từ website
– Log lỗi

Xem log web server nếu có lỗi 500, 403, 404.

Cắt chuyển DNS ít downtime

Khi website mới ổn:

1. Chạy backup database lần cuối từ cPanel cũ.
2. Đưa website cũ về maintenance mode nếu có dữ liệu động như đơn hàng, thành viên, booking.
3. Import database cuối sang server mới.
4. Trỏ DNS sang IP mới.
5. Cài SSL chính thức.
6. Theo dõi log, đơn hàng, email trong 24-48 giờ.

Với website tĩnh hoặc ít cập nhật, downtime gần như bằng thời gian DNS cập nhật. Với WooCommerce, LMS, forum, CRM, nên có cửa sổ bảo trì ngắn để tránh lệch dữ liệu.

Lỗi thường gặp và cách xử lý

Lỗi trắng trang hoặc 500

Nguyên nhân hay gặp:

– Sai phiên bản PHP
– Thiếu extension
– Permission sai
.htaccess không tương thích
– Database config sai

Cách xử lý: bật debug, xem error log, đổi PHP version, kiểm tra quyền file.

Lỗi kết nối database

Kiểm tra:

– DB name
– DB user
– Password
– DB host
– User có quyền đủ chưa

Với nhiều panel, DB host vẫn là localhost, nhưng có panel dùng 127.0.0.1 hoặc socket riêng.

Email không nhận được

Kiểm tra:

– MX record
– SPF/DKIM/DMARC
– Mail service đã bật chưa
– Firewall port 25/465/587/993
– DNS propagation
– Mailbox quota

Website mất ảnh

Nguyên nhân:

– Chưa copy đủ thư mục uploads
– File owner sai
– Path tuyệt đối trong database
– Hotlink/CDN config cũ

Kết luận thực tế

Chuyển sang panel thay cPanel không khó nếu backup đúng và restore có kiểm soát. Đừng phụ thuộc duy nhất vào full backup. Hãy có ít nhất 3 lớp: full cPanel backup, backup file riêng, backup database riêng. Nếu có email nội bộ, thêm backup IMAP.

Quy trình an toàn: kiểm kê dữ liệu, backup, tải bản sao ra ngoài, restore trên server mới, test bằng hosts file, sync lần cuối, rồi mới đổi DNS. Server cũ nên giữ vài ngày để làm đường lùi.

Panel có thể đổi. Dữ liệu phải còn. Backup tốt là bảo hiểm rẻ nhất trước mọi cuộc migration.

#backup #lieu #restore #toan #truoc
Chia sẻ:
← Trước
7 Lỗi Khi Thay cPanel Bằng Panel Khác Và Cách Xử Lý

Bài viết tương tự

Bình luận

Chưa có bình luận. Hãy là người đầu tiên!