Chuyển host cho website WordPress theo phương pháp thủ công, không có downtime.

Nếu bạn đang muốn chuyển website WordPress của mình qua một hosting mới có chất lượng tốt hơn, nhưng không biết cách làm và nhà cung cấp dịch vụ không hỗ trợ chuyển, thì bài viết này là dành cho bạn. Trong một bài viết trước đây, tôi đã từng giới thiệu cho các bạn cách chuyển host với plugin All-in-One WP Migration rồi phải không nào. Tuy nhiên, nếu bạn không phải là tín đồ của plugin và muốn tìm cách chuyển host trong trường hợp không sử dụng được plugin thì ngay sau đây là hướng dẫn.
Tham khảo thêm:
- Phương pháp cứu cánh website khi không chuyển được host
- Chuyển host cho website WordPress một cách dễ dàng
Tại sao bạn nên chuyển host theo phương pháp thủ công?
Khác với chuyển host bằng plugin, chuyển host theo phương pháp thủ công có thời gian downtime gần như bằng 0. Nghĩa là website của bạn vẫn hoạt động hoàn toàn bình thường trong suốt quá trình, không ai có thể nhận ra được là bạn đang chuyển host. Bởi vì chỉ sau khi hoàn tất việc di chuyển dữ liệu và cấu hình, bạn mới cần phải trỏ domain về hosting mới.
Chuyển host cho website WordPress mà không có downtime
Quá trình thường bao gồm 4 bước: export dữ liệu từ host cũ, chỉnh sửa thông tin database, upload dữ liệu lên và trỏ tên miền về host mới.
Export dữ liệu từ host cũ
Quá trình này bao gồm việc nén, download mã nguồn và export database từ phpMyAdmin về máy tính. Cách thức tiến hành cụ thể, các bạn vui lòng xem chi tiết trong bài viết “Hướng dẫn backup WordPress không cần dùng plugin“. Trong trường hợp không thể nén được file mã nguồn do host không đủ dung lượng hoặc host không có cPanel/ DirectAdmin… hãy sử dụng phần mềm FTP để truy cập và download tất cả file về máy tính => nén lại thành file .zip.
Sau khi hoàn tất, các bạn sẽ nhận được 1 file .zip chứa mã nguồn web và 1 file .sql chứa database.
Chỉnh sửa thông tin database
1. Dùng ứng dụng NotePad++ đã cài sẵn trên máy tính để mở file .sql chứa database ra. Tìm và xóa phần thông tin của database cũ đi (phần được bôi đen). Chúng thường là các đoạn nằm ở đầu:

Và ở cuối của database:

2. Sau khi hoàn tất, click vào nút Save trên ứng dụng để lưu lại.
Upload dữ liệu lên host mới
1. Đầu tiên, sử dụng File Manager của cPanel/ DirectAdmin hoặc phần mềm FTP để upload file .zip chứa mã nguồn vào đúng thư mục lưu trữ mã nguồn của host mới (thường là thư mục public_html đối với tên miền là primary domain) => tiến hành giải nén nó ra. Đối với các file .zip có dung lượng lớn (lên đến hàng GB), chúng tôi khuyên bạn nên sử dụng phần mềm FTP để upload, tránh tình trạng gián đoạn giữa chừng do sự cố mạng.
Nếu bạn không biết cách làm, vui lòng tham khảo bước 5 và 6 của bài viết “Hướng dẫn cài đặt WordPress trên hosting có cPanel” (*).
2. Tiếp theo, tạo 1 database và database user trên host mới, phân quyền quản trị database cho database user. Tên của database và database user nên giống với tên trên host cũ (nếu chúng giống nhau, các bạn có thể bỏ qua bước 3). Nếu bạn không biết cách làm, hãy tham khảo từ bước 8 đến bước 11 của bài viết (*).
3. Mở file wp-config.php của website (trên host mới) ra, khai báo lại thông tin của database cho trùng khớp với database đã tạo ở bước 2. Tham khảo bước 12 của bài viết (*) nếu bạn không biết cách làm.
4. Truy cập phpMyAdmin của host mới => click chọn database bạn vừa tạo ở bước 2 => click tiếp vào tab Import => chọn file .sql mà bạn đã chỉnh sửa trên máy tính => click vào nút Go để bắt đầu quá trình import dữ liệu.

Trong trường hợp file .sql có dung lượng vượt quá mức cho phép upload của phpMyAdmin, các bạn có thể dùng phần mềm 7-Zip hoặc WinRAR để nén nó lại thành file .zip hoặc .gz trước khi upload để giảm dung lượng file.
Sau khi hoàn tất, bạn sẽ nhận được dòng thông báo import thành công (trên nền màu xanh lá) và các table của database xuất hiện đầy đủ trong phpMyAdmin.
Trỏ tên miền về host mới
1. Trỏ tên miền của bạn về hosting mới. Nếu bạn trỏ bằng IP, có thể tham khảo bài viết “Hướng dẫn trỏ tên miền về host bằng địa chỉ IP“.
2. Sử dụng các công cụ check IP của tên miền hoặc dùng Command Prompt (CMD) của máy tính để ping và kiểm tra xem tên miền của bạn đã nhận IP của host mới hay chưa. Tham khảo bài viết “Hướng dẫn xóa cache DNS khi thay đổi IP của tên miền” nếu máy tính của bạn mãi không chịu nhận IP của host mới.
Nếu tên miền đã nhận IP mới => đăng nhập vào website => xóa cache website (nếu bạn dùng plugin tạo cache) và cache trình duyệt => kiểm tra kết quả cuối cùng. Nếu website hoạt động ổn định thì có nghĩa là bạn đã chuyển host thành công.
Bạn thường dùng phương pháp nào để chuyển host cho website WordPress của mình? Hãy chia sẻ với chúng tôi phương pháp mà bạn cho là đơn giản và hiệu quả nhất trong khung bình luận bên dưới.
Nếu bạn thích bài viết này, hãy theo dõi blog của tôi để thường xuyên cập nhật những bài viết hay nhất, mới nhất nhé. Cảm ơn rất nhiều. :)






Chào bạn,
Mình có nhờ/thuê người khác chuyển host giúp.
Sau khi họ chuyển xong giúp mình, làm sao mình có thể kiểm tra được host đã được chuyển?
Bạn dùng các công cụ như IP Checker để kiểm tra xem tên miền đã trỏ về IP của host mới hay chưa. Kết hợp với việc ping domain trên CMD của Windows để đối chiếu kết quả.
bro cho em hỏi em chuyển sang nhưng cái vụ SSL thì em kiểm tra trong host mới thì nó không nhận, em có vào ấn Run AutoSSL nhưng nó cứ báo lỗi, liệu có phải do SSL vẫn dính của thằng host cũ và phải gỡ đi không ạ ?
Bạn tham khảo bài viết “Lỗi gia hạn tự động Let’s Encrypt và cách khắc phục” nhé.
cho mình hỏi là mình thực hiện đúng như hướng dẫn, nhận ip của hosting mới rồi. sao vào website bị báo lỗi http error 500 vậy?
Lỗi 500 là do mã nguồn website của bạn bị lỗi (thiếu file, hỏng file trong lúc chuyển dữ liệu) hoặc không tương thích với host.
Khi import database bị lỗi do phần code thì làm như nào hả bạn ? toàn là thấy lỗi ——— ERROR 1064 (42000)
Có vẻ database của bạn bị lỗi cấu trúc rồi. Bạn dùng host của bên nào thì liên hệ nhờ họ chuyển hộ dữ liệu xem sao.
Bạn Trung Hiếu oi, Khi mình chuyển bằng one wp migration như thế thì những comment bình luận trước đó có còn giữ lại được không hay chỉ giữa lại được nội dung các bài viết nhỉ. Vì mình đã thử với cách làm thủ công băng tay là vào host backup lại thì những cái đó bị mất hết. Còn với cách này thì có việc gì không?
Chuyển host thủ công bị mất bình luận? Lúc bạn export database có bị lỗi đứt quãng giữa chừng không? Lúc import database có bị thông báo lỗi gì không? Mình chuyển host toàn làm thủ công mà có bao giờ bị mất mát gì đâu.
Bài này hơi thừa thì phải admin. Gọn 1 cái là muốn chuyển website bằng wordprees qua hosting khác thì cách đơn giản và nhanh nhất là cái plubgin Duplicator vào. Cài xong tiếp theo như nào thì gg mà đọc.
Có phải lúc nào cũng chuyển được web bằng Duplicator đâu bạn. Dữ liệu web quá lớn (tạo backup bằng Duplicator bị time out) hoặc host không hỗ trợ nén file zip thì sao? Lúc đó bạn sẽ bắt buộc phải chuyển thủ công thôi.
anh ơi em chuyển host mãi không được ạ :( . Em làm đi làm lại mấy lần rồi mà bước vẫn không được ạ . Đến bước thứ 4 em up file SLQ mà nó hiển thị thế này ạ : Truy vấn SQL:
CREATE TABLE 'wp_kr2y03pmr3_commentmeta` (`meta_id` BIGINT ( 20 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`comment_id` BIGINT ( 20 ) UNSIGNED KHÔNG NULL DEFAULT '0' ,
`meta_key` VARCHAR ( 255 ) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL ,
`meta_value` LONGTEXT COLLATE utf8mb4_unicode_520_ci ,
PRIMARY KEY ( `meta_id` ) ,
KEY `comment_id` ( ` comment_id` ) ,
KEY `meta_key` ( ` meta_key` ( 191 ) )
) ENGINE = MYISAM AUTO_INCREMENT = 789 DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_520_ci ;
MySQL trả lời: tài liệu
Anh giúp em với ạ ! Cảm ơn anh nhiều ạ !
Cái này có vẻ liên quan đến Connection Character Sets and Collations. Bạn kiểm tra xem Character Sets trên phpMyAdmin đã giống với trong database là
utf8mb4_unicode_520_cichưa?dạ vâng ạ ! Anh có thể hỗ trợ chuyển host giúp em được không ạ , em sẽ trả anh tiền ạ . Em mày mò mãi không ra ạ :(
Bạn chuyển host từ nhà cung cấp nào qua nhà cung cấp nào nhỉ?
Mình hay chuyển host sử dụng plugin DUPLICATOR, tuy nhiên đôi khi muốn chắc chắn mình toàn làm thủ công.
Em toàn dính đoạn bước 1 là database cũ không xóa đi, nay mới biết :D
Tóm gọn lại nội dung:
1. Backup dữ liệu cũ và tải về.
2. Giải nén, upload và import dữ liệu lên hosting mới.
3. Chỉnh sửa kết nối cơ sở dữ liệu.
4. Cấu hình DNS trỏ tên miền về hosting mới.
Tùy vào mỗi người mà chi tiết bên trong có khác nhau. Chờ một ít thời gian và kiểm tra lại xem tên miền đã nhận IP hosting mới hay chưa?
Mấy cái này mà đụng người mới tập làm thì phải cần video hướng dẫn nữa bác.
Lúc nào chuyển host cho khách thì mới quay video được bác ạ. Giờ lười quá. :D Tối qua mới chuyển nhưng lại quên quay. :P