Hướng dẫn chuyển host WordPress theo phương pháp thủ công: nhanh hơn nhờ tính năng nén và giải nén dữ liệu

Chào các bạn, nhìn chung cách chuyển host WordPress thông qua plugin dễ làm hơn đối với đa số chúng ta, và là cách nên ưu tiên trước, nhất là với những ai mới tìm hiểu hoặc/và không mạnh về kỹ thuật (ưu tiên dùng plugin UpdrafPlus hoặc All in one WP Migration).

Tuy nhiên nếu bạn rơi vào một trong hai trường hợp sau, chuyển host thủ công là điều nên cân nhắc:

  • Chuyển bằng plugin không thực hiện được vì một (vài) lý do nào đó;
  • Bạn muốn tìm hiểu kỹ, đào sâu vào WordPress hơn;

PS: nếu bạn viết một ứng dụng PHP nào đấy hoặc sử dụng CMS khác như Joomla, Drupal thì về bản chất chuyển thủ công cho nó cũng hoàn toàn tương tự như cách đang trình bày trong bài viết này.


Chuyển thủ công có 2 hình thức:

  • Hoàn toàn thủ công: tức là chuyển thông qua việc tải từng file lẻ trên website về thông qua phần mềm FTP cài trên máy tính (ví dụ Filezilla). Cách này tôi không khuyến khích, vì rất mất thời gian, và dễ lỗi này lỗi nọ;
  • Bán thủ công: tận dụng tính năng nén (compress) và giải nén (extract) dữ liệu của control panel (chương trình quản trị hosting, ví dụ cPanel, Plesk, DirectAdmin, CyberPanel, aaPanel, vân vân) để tải file về và up file lên. Nhờ tất cả các file được nén thành một khối (thường là dạng .zip) mà dữ liệu tải về cũng như up lên nhanh hơn nhiều, và không bị lỗi linh tinh;

Phương pháp:

  1. Xuất file dạng nén của website từ hosting cũ, tải về máy tính. Nén giúp giảm dung lượng, giảm thời gian tải, hạn chế tối đa lỗi;
  2. Xuất database (cơ sở dữ liệu) của website từ hosting cũ, tải về máy tính. Có thể là dạng thông thường (.sql) hoặc nén (.zip, .rar). Bạn có thể xuất .sql rồi nén sau cũng được. Nén giúp giảm dung lượng database đi rất nhiều;
  3. Trỏ DNS của tên miền về IP của hosting mới;
  4. Cài website rỗng trên hosting mới thông qua control panel của hosting mới;
  5. Tải lên file nén của website lên hosting mới;
  6. Giải nén nó;
  7. Kiểm tra các file giải nén đã ở vị trí thư mục phù hợp hay chưa;
  8. Di chuyển các file nếu chưa phù hợp;
  9. Khởi tạo thông tin tên bảng database mới, username và password cho database;
  10. Nhập database của website lên hosting mới vào database vừa tạo;
  11. Sử dụng wp-config.php để kết nối file và database trên hosting mới;
  12. Kiểm tra lại website để tìm lỗi nếu có và khắc phục vấn đề phát sinh;

Cái này chỉ cho bạn thấy phần tổng quan thôi, chúng ta sẽ đi vào chi tiết sau.


Xem video nếu bạn muốn:


Những thông tin cần biết:

  • Dữ liệu website có hai phần chính là file và database. File là những thứ như ảnh, css, js, giao diện, plugin. Database hay còn gọi là cơ sở dữ liệu giống bộ nhớ năng động của website kết hợp với file để tạo thành trang web hoàn chỉnh;
  • Bạn cần nắm rõ vị trí đặt dữ liệu của website để lấy dữ liệu về. Ví dụ file thường nằm ở thư mục gốc của website và có tên public_html. Còn database được quản trị bởi phpMyAdmin. Bạn cần biết cách vào hai nơi này;
  • Quá trình xuất và nhập dữ liệu đòi hỏi hosting phải dư dung lượng ít nhất là bằng với dung lượng website. Ví dụ website của bạn có dung lượng 3 GB, bạn nén lại thành file .zip thì có thể nó còn 2,5 GB, tổng cộng cần ít nhất 5,5 GB. Trong trường hợp đó nếu hosting của bạn chỉ có 5 GB tất cả thì nó sẽ không thể tiến hành nén được vì thiếu ổ. Tương tự như vậy với câu chuyện giải nén trên hosting mới;
  • Chuyển hosting theo cách thủ công là dựa vào đường truyền internet tại nhà. Do vậy bạn cần chuyển lúc đường truyền ổn định, có tốc độ tốt. Thường gần sáng (4 – 6h sáng) đáp ứng được cả hai điều kiện đó;
  • Luôn backup website trước khi chuyển hosting. Để dự phòng chuyện mất mát dữ liệu trong quá trình chuyển, bạn nên dùng plugin UpdraftPlus để làm nhiệm vụ này;
  • Bạn cần biết cách truy cập vào file và database trên control panel của cả hosting cũ và hosting mới. Đừng lo, các control panel phổ biến đều là dạng đồ họa rất trực quan, có nhiều tài liệu hướng dẫn nên bạn sẽ tìm ra thôi;

Để quá trình chuyển hosting diễn ra thuận lợi, nó cần các công cụ khác hỗ trợ. Bạn có thể tham khảo thêm 2 bài viết sau:

Trong bài viết này tôi demo chuyển hosting cho website ducanhpsy.com từ control panel là CyberPanel về cPanel. Bất kỳ control panel nào khác (Plesk, DirectAdmin, aaPanel, vân vân) cũng thao tác tương tự bạn nhé.

OK, giờ là lúc chúng ta vào việc.


Bước 1. Xuất file

Tùy control panel mà theo tác tìm đến file của website sẽ khác nhau chút ít. Ví dụ cụ thể trên CyberPanel là: List Websites > Chọn website cần đến > Manage > File Manager > public_html chính là thư mục chứa file của website:

thư mục chứa file của website

Tiếp đến bạn chuột phải vào thư mục public_html rồi chọn Compress (thao tác nén file).

Nếu có thông báo nào liên quan đến chọn tên file nén hoặc định dạng, bạn có thể chọn như hình:

Kết quả là xuất hiện file zip trong thư mục, bạn chuột phải vào nó rồi nhấn Download để tải về. Tùy vào dung lượng website của bạn, và tốc độ mạng tại nhà, quá trình này sẽ tốn khoảng từ chỉ 1 – 2 phút cho đến cả 10 – 20 phút.


Bước 2. Xuất database

Việc truy cập vào database cũng tùy control panel, ví dụ với trường hợp cụ thể của CyberPanel là:

https://ten-website-cua-ban.com:8090/phpmyadmin/index.php

Sau đó bạn vào tên database của website.

xuất database cho WordPress

Vào Export để xuất database:

thao tác xuất database

Như vậy thông qua bước (1) và (2) bạn có được file (đuôi .zip) và database (đuôi .sql hoặc .zip) của website, nói cách khác là toàn bộ dữ liệu của nó.

Thường thì dung lượng của file sẽ nặng hơn cỡ vài chục lần so với database.


Bước 3. Chuyển file lên hosting mới

Trước hết bạn cần trỏ tên miền về IP của hosting mới, vào control panel của hosting mới và nhập tên miền vào.

Lưu ý ở công đoạn này là bạn cần tạo luôn:

  • https cho tên miền nếu website của bạn trước đây cũng dùng https (liên kết bảo mất);
  • chỉ định cụ thể dạng của website là không-www hay có-www như webiste của bạn trước đây dùng;

Làm luôn 2 cái trên sẽ giúp bạn đỡ mất công chỉnh sửa phức tạp sau này.

Rồi xong, bạn cũng vào thư mục của website, rồi up file .zip lên thư mục đó (sử dụng tính năng Upload). Trong ví dụ cụ thể này tôi dùng cPanel cho hosting mới.

upload file website trong cPanel

File tải lên xong, chuột phải vào file để giải nén (Extract):

giải nén website

Chọn thư mục website để dữ liệu bung ra:

chọn thư mục để bung ra

Có điểm quan trọng cần lưu ý ở đây:

  1. Trên cPanel nếu hosting của bạn chỉ có một tên miền thì cấu trúc của nó sẽ là File Manager > public_html là thư mục website gốc tương ứng luôn;
  2. Tuy nhiên nếu hosting của bạn có vài tên miền cùng host trên đó, và tên miền mới thêm vào sẽ là addon (tên miền mà bạn chuyển hosting), cấu trúc thư mục của nó sẽ như sau: File Manager > ten-mien-cua-ban.com mới là thư mục gốc của website đó;

Vì lý do đó, nếu bạn rơi vào trường hợp đầu thì giải nén xong là xong, còn nếu rơi vào trường hợp thứ hai, sau khi giải nén, bạn sẽ thấy thư mục trang thế này:

cấu trúc trang

Bạn sẽ cần vào public_html và chuyển toàn bộ dữ liệu ở đây ra ngoài, tức là chuyển dữ liệu website từ:

ten-mien-cau-ban.com/public_html  -> ten-mien-cua-ban.com (cùng cấp với cgi-bin)

Cách làm là bạn chọn toàn bộ file, thư mục trong public_html (nhấn phím shift rồi chọn từ đầu đến cuối), sau đó bạn chuột phải và chọn Move.

Ở phần “Enter the file path that you want to move this file to:” bạn chọn đường dẫn như sau:

/ten-mien-cua-ban.com/

Quay ra kiểm tra nếu bạn thấy thư mục website lúc này đã có dữ liệu từ public_html, còn public_html thì rỗng nghĩa là bạn đã di chuyển file thành công rồi.

OK, như vậy chúng ta đã xong phần khôi phục file trên hosting mới. Tiếp đến sẽ là khôi phục database.

PS: lúc này bạn truy cập website sẽ chỉ thấy thông báo lỗi kiểu như “Error establishing a database connection”, mà không có nội dung gì khác, vì việc kết nối với database của website vẫn chưa diễn ra.


Bước 4. Chuyển database lên hosting mới

Phần này sẽ tương đối phức tạp. Bạn sẽ cần vào khu vực quản trị database trên cPanel nhiều lần, nó nằm ở khu vực này:

khu vực quản trị database trên cPanel

Tạo database mới:

Tạo username và pass cho database:

tạo username và password cho database

Chú ý: bạn cần ghi nhớ các thông tin sau:

  • tên bảng database ở step 1;
  • username, password ở step 2;

Vì các thông tin này chúng ta cần dùng để thực hiện kết nối giữa file và database thì website mới hoạt động bình thường được…

Xác nhận quyền của user với database tương ứng (bạn tick chọn tất) rồi Make Changes:

xác nhận quyền của user với database

Tạo mới database thành công:

xác nhận quyền của user với database thành công

Vào phpMyAdmin, truy cập tên database mới vừa tạo lúc nãy, vào phần Import để đẩy dữ liệu database (đã xuất ở bước 2 từ hosting cũ) lên hosting mới (nhấn vào Choose File rồi chọn file database):

Nhập database của website lên hosting mới

Nếu file .sql của bạn có dung lượng lớn hơn giới hạn Max, thì bạn có thể nén nó lại dưới dạng .zip, .rar để giảm được đáng kể giá trị này (có thể giảm được 10 – 20 lần dung lượng). Lúc này database của bạn sẽ có dạng kiểu như database.sql.zip

Đẩy database thành công, bạn sẽ thấy thông báo như thế này:


Bước 5. Chỉnh sửa file wp-config.php

File wp-config.php lưu trữ thông tin kết nối giữa file và database. Thông tin này hiện vẫn là thông tin cũ từ hosting cũ, chúng ta cần cập nhật nó tương ứng với thông tin bảng, user và password mà chúng ta tạo lúc nãy (ở bước 4).

Chỉnh sửa file wp-config.php (nằm ở thư mục gốc của website), bạn chuột phải vào nó và nhấn Edit:

Bạn tìm đến các thông tin này:

define( 'DB_NAME', 'nhập tên bảng cơ sở dữ liệu bạn tạo vừa nãy' );

define( 'DB_USER', 'nhập username cho database bạn tạo vừa nãy' );

define( 'DB_PASSWORD', 'nhập password cho username tương ứng bạn tạo vữa nãy' );

define( 'DB_HOST', 'localhost' );

Sau đó sửa lại rồi nhấn Save change để lưu các thay đổi.

Nếu thông tin trên bạn nhập không chính xác, khi bạn truy cập website, bạn sẽ thấy thông báo lỗi kết nối dữ liệu như thế này:

Error establishing a database connection

Lưu ý: một số control panel, hosting có thể có dòng define( 'DB_HOST', 'localhost' ) khác thông thường, ví dụ define( 'DB_HOST', 'localhost:336' ), bạn nên vào xem một file wp-config mẫu trên website khác mà bạn host trên hosting mới đó để kiểm tra lại thông tin này nếu sau khi cập nhật thông tin vẫn có lỗi kết nối.


Kết luận

Chuyển hosting theo cách thủ công chắc chắn khó khăn hơn hẳn plugin và kiểu gì cũng làm chúng ta vò đầu bứt tai ít nhiều. Nhưng nếu làm vài lần thì cũng quen và giúp bạn hiểu sâu hơn cấu trúc, cách vận hành của WordPress.