Di chuyển website WordPress từ nơi này sang nơi khác hay còn gọi là chuyển host cho WordPress là công việc Ngọc chán nhất, ghét nhất và oải nhất.
Ngọc chắc chắn rằng bạn cũng sẽ như thế!
Nhưng thật sự mà nói rằng trong quá trình làm việc với website rất có thể bạn sẽ một lần phải làm công việc đáng ghét này. Vì sao?
Vì bạn lỡ đặt website vào một dịch vụ hosting dở tệ, một thời gian bạn phát hiện ra điều đó nên… bạn chuyển host WordPress.
Host sắp hết hạn, bạn không đủ tiền để gia hạn. Bạn được chào mời mua một hosting mới với mức giảm giá lớn… thế là bạn chuyển host.
Đứt cáp quang hướng kết nối đi Mỹ làm cho website chậm, bạn tìm kiếm một hosting có datacenter tại Châu Á để cải thiện tốc độ truy cập…bạn chuyển host cho WordPress.
Còn rất nhiều lý do khác nữa khiến bạn phải một lần bất đắc dĩ phải chuyển host cho website/blog.
Để không bao giờ phải làm cái công việc chán ngắt này Ngọc khuyên bạn nên sử dụng những hosting tốt nhất cho WordPress.
Còn nếu vì bất cứ lý do nào đó mà bạn cần chuyển host cho WordPress thì hãy xem hướng dẫn chi tiết bên dưới.
Đây là cách chuyển host thủ công, thời gian vừa qua do đứt cáp quang nên Ngọc đã di chuyển một số blog đang đặt máy chủ tại Mỹ về dịch vụ hosting có datacenter tại Châu Á, cụ thể là Hong Kong hoặc Singapore.
Nội dung bài viết
ToggleHướng dẫn chuyển Host cho WordPress
Về cơ bản việc chuyển host cho website/blog tức là bạn di chuyển toàn bộ mã nguồn & cơ sở dữ liệu (database) từ host (dịch vụ lưu trữ website) này sang host khác.
3 việc cần làm trước khi chuyển website WordPress
- Thêm tên miền vào host mới
- Tắt các plugin bảo mật nếu có
- Tắt các plugin cache nếu có
Các bước chuyển website WordPress trên host sử dụng cPanel
Chúng ta sẽ đi qua 7 bước như sau:
- Nén và tải về mã nguồn của website ở host cũ
- Sao lưu và tải về cơ sở dữ liệu của website ở host cũ
- Upload mã nguồn lên host mới
- Tạo mới database trên host mới
- Upload database lên host mới
- Sửa thông tin database trong file wp-config.php ở host mới
- Trỏ tên miền về host mới
Chúng ta bắt đầu nào…
Bước 1: Nén và tải về mã nguồn ở host cũ
Bạn cần truy cập vào cPanel trên sau đó tìm đến mục File Manager
Sau đó tìm đến thư mục chứa website cần chuyển, chọn Select All -> Compress để nén toàn bộ mã nguồn.
Một cửa sổ mới hiện ra, chọn định dạng Zip hoặc GZiped. Nhấn Compress File.
Thông báo nén thành công như hình bên dưới. Chọn Close.
Ngay sau đó tại thư mục của website sẽ xuất hiện một tệp tin nén. Lúc này bạn cần chọn tập tin đó và nhấn Download để tải về máy tính.
Được rồi, vậy là bạn đã có file nén mã nguồn của website.
Bước 2: Sao lưu và tải về cơ sở dữ liệu của website ở host cũ
Vẫn ở cPanel của host cũ, tìm đến mục phpMyAdmin
Chọn database của website cần chuyển, sau đó nhấn Export
Nhấn Go để tải về một tệp tin .SQL
Đến đây bạn đã có toàn bộ dữ liệu của website rồi, đó chính là một file nén mã nguồn và một file database dạng .SQL
Thực chất đến bước này cũng chính là cách sao lưu (back up) dữ liệu thủ công rồi đó.
Bước 3: Upload mã nguồn lên host mới
Bây giờ bạn cần đăng nhập vào cPanel của host mới.
Vào mục File Manager, tìm đến thư mục của tên miền đã thêm vào host. Nếu bạn sử dụng tên miền làm tên miền chính của host thì thư mục gốc là public_html.
Chọn Upload.
Chọn Select File để tải file Zip mà bạn đã lưu trên máy tính ở bước 1.
Sau khi tải xong, chọn Extract để giải nén file Zip này.
Vậy là xong rồi, chúng ta đã chuyển mã nguồn website lên host mới.
Tiếp theo…
Bước 4: Tạo một Database trên host mới
Để dữ liệu tại host cũ có thể hoạt động được trên host mới thì ngoài mã nguồn bạn phải di chuyển database (nội dung bài viết, thiết lập,…).
Ở bước 2 chúng ta đã tải về một tập tin .SQL là database được xuất ra từ host cũ. Bây giờ bạn hãy vào cPanel ở host mới và tìm mục MySQL Databases để tạo một database mới trên host mới nhé.
Ở mục Create New Database, đặt tên cho database sau đó nhấn Create Database.
Sau đó kéo xuống mục add New User. Ở đây bạn cần tạo một User mới. Đặt tên và mật khẩu cho User đó.
Nhấn Create User.
Di chuyển xuống phía dưới chọn User và Database mới tạo để cấp quyền truy cập. (đây là thao tác bạn cho phép User truy cập vào database)
Nhấn Add.
Ở trang tiếp theo chọn vào mục ALL PRIVILEGES, nhấn Make Changes
Bước 5: Upload Database lên host mới
Tìm đến mục phpMyAdmin để upload lên tập tin database.
Chọn đúng database bạn đã tạo trong bước 3, sau đó ở mục Import.
Chọn Choose file để tải lên file .SQL mà bạn đã tải về máy ở bước 2, nhấn GO.
Thời gian import sẽ nhanh hay chậm tùy thuộc vào tốc độ đường truyền và dung lượng của database của bạn. Khi Import thành công bạn sẽ nhận được thông báo như hình dưới.
Vậy là đã xong việc đưa mã nguồn và cơ sở dữ liệu về host mới rồi.
Bước 6: Sửa thông tin database trong file wp-config.php ở host mới
Ở bước 2, khi bạn mang mã nguồn từ host cũ qua host thì tập tin wp-config.php vẫn còn mang thiết lập database ở host cũ. Thông tin database này bao gồm hostname, database name, database user và database password không trùng khớp ở host mới nên bạn phải sửa lại cho đúng với thông tin database đã tạo ra ở bước 4.
Để sửa, vẫn ở cPanel của host mới bạn vào mục File Manager, tìm tập tin wp-config.php ở thư mục mới giải nén ra trong bước 3.
Nhấn Code Editor.
Tìm đến các dòng sau để sửa lại:
Trong đó:
- DB_NAME: Tên database ở host mới.
- DB_USER: Tên user của database ở host mới.
- DB_PASSWORD: Mật khẩu của database user.
- DB_HOST: Địa chỉ của MySQL Server. Nếu host bạn không có địa chỉ riêng dành cho MySQL thì giữ nguyên là localhost nhé.
Sau đó lưu lại.
Bước 7: Trỏ tên miền về host mới
Tuy tất cả các dữ liệu đã được chuyển về host mới rồi nhưng nếu bạn chưa trỏ trên miền về địa chỉ DNS của host mới thì bạn vẫn chưa thể truy cập website được. (vì lúc này tên miền vẫn đang sử dụng DNS của host cũ)
Do đó bước cuối cùng là bạn cần trỏ tên miền về host mới bằng cách sửa DNS của tên miền thành DNS của host mới thôi là được.
- Tham khảo: Cách trỏ tên miền về host bằng DNS của host
Lưu ý: Sau khi hoàn tất các bước như trên bạn cần cập nhật lại Permarlink bằng cách truy cập vào trang quản trị WordPress. Chọn Setting ->Permarlink. Nhấp Save Changes để cập nhật
Lời kết
Trên đây là tất cả những bước để bạn di chuyển host cho WordPress thủ công. Hiện nay có một số plugin giúp chuyển host nhanh hơn bạn có thể Google Search để tham khảo. Tuy nhiên nếu bạn có thể thực hiện thủ công thì đây cũng là một cách để làm quen với những thao tác làm việc trên cPanel.
Bạn đã bao giờ phải chuyển host cho WordPress chưa? Vì sao và cách làm của bạn như thế nào? Đừng quên chia sẻ những kinh nghiệm của bạn ở bình luận bên dưới nhé.
Anh Ngọc cho em hỏi, nếu có cài Cloudflare thì các bước y trên rồi chỉnh DNS trên Cloudflare phải ko anh?
Ok em, sau khi đã cài Cloudflare rồi thì việc cập nhật điều chỉnh DNS sẽ làm trên Cloudflare nhé không làm ở dịch vụ tên miền nữa.
Dạ, cám ơn anh!!! nice day nhé anh!!
Cảm ơn anh Ngọc đã hướng dẫn rất chi tiết!
Em đã làm được các bước 1-2-3-4.
Đến bước số 5, lúc upload .SQL database lên host mới, thì có lỗi “MySQL said: #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘PK’ at line 1”.
Database khi tải xuống từ host cũ, em tải về ở dạng “abcdef.sql.zip”.
Nhờ anh Ngọc cho em lời khuyên với ạ. Cảm ơn anh rất nhiều!
Chào anh,
Em đang muốn chuyển hosting về VPS của google Cloud, như vậy nó có khác gì không ạ. Anh có bài hướng dẫn nào làm việc này không ạ. Em cảm ơn
Mình có 1 web trên 1 hosting. Bây giờ mình muốn làm 1 web giống hệt như web đó cũng nằm trên 1 hosting mà khác Domain có làm theo cách đó được không bạn?
Nếu vậy bạn phải kiểm tra xem hosting có giới hạn domain không? Nếu không giới hạn domain thì có thể mua domain khác sau đó add vào hosting và cài website mới domain mới nhé!
alo
Khi nhập database cũ thì nó báo như thế này là bị làm sao anh:
MySQL said: Documentation
#1044 – Access denied for user ‘anatrmbh’@’localhost’ to database ‘anat3756132184’
Kiểm tra lại xem đã cấp quyền truy câp của user cho database chưa em nhé, tức là sau khi tạo database mới thì cần tạo thêm một user sau đó cấp quyền cho user đó truy cập vào database mới tạo.
Trong Mange Privileges đấy ạ. E chọn hết rồi
:)) dùng Cloudflare thì cần gì chuyển DC làm gì…
@Trung
Web mình nói đến trên bài viết không dùng Cloudflare bạn à.
Em thấy bác dùng plugin Duplicator còn nhanh hơn nhiều đó :v
@Tinhwrl
Thanks bạn đã chia sẻ thêm thông tin, mình thỉnh thoảng cũng dùng plugin Duplicator nhưng vì hướng dẫn làm trên cPanel để các bạn mới có khái niệm và quen cách thao tác trực tiếp!
Thân mến!
Duplicator chuyển web lớn hay bị lỗi. Có cách nào chuyển dễ như Duplicator mà không lỗi không Ngọc?
Mình hya chuyển thủ công, hơi lâu tí nhưng thấy ngon và ổn hơn nhiều bạn à.