Thời gian trôi nhanh như chó chạy, cả tuần trời không được bài nào, hết việc gia đình đến việc công ty cứ loạn cả lên hôm nay mới gác lại để viết tiếp được mong các bạn độc giả thông cảm.
Bài trước bạn đã biết backup web trên VPS một cách tự đông bài này sẽ hướng dẫn thêm cách restore website cho đủ bộ, mình lấy việc chuyển website từ hosting sang VPS Server để các bạn dễ hình dung.
Restore website theo mình là khó, thiên về kiến thức tổng hợp hơn là việc cài đặt cấu hình. Tuy xưa như trái đất nhưng nhiều người làm vẫn bị lỗi vì nó phải chỉnh sửa nhiều thành phần cùng lúc bạn nào không nắm rõ vấn đề thường làm sai.
Coi như bạn đã có bản backup website trên máy tính cá nhân của mình bao gồm source code và database. Có thể tham khảo thêm một số bài viết sau:
Để phục hồi website trên linux chúng ta làm tuần tự các bước.
1. Trỏ NameServer trên domain.
Nói trỏ Domian đến DNS Server cũng được, Nameserver hay DNS Server là một bạn nhé. Đây là việc quan trọng cần làm đầu tiên vì có thể sẽ mất thời gian để cập nhật DNS giữa hệ thống của bên cung cấp Hosting và VPS.
Tại sao phải đổi lại nameserver cho tên miền, mình giải thích như này.
Trước đây các bạn chạy web trên hosting thì hiển nhiên tên miền của bạn cài đặt dùng nameserver của nhà cũng cấp hosting để có tốc độ truy vấn tốt nhất. Giờ bạn chuyển web sang VPS mới với địa chỉ IP mới thì bạn phải cài đặt lại để domain dùng nameserver của đơn vị cung cấp Cloud VPS. Như thế thì khi người dùng truy cập trang web của bạn trình duyệt mới biết website nằm ở đâu mà mò tới làm việc.
Một câu hỏi đặt ra: nếu vẫn muốn dùng nameserver của hosting có được không ?
Cấu trả lời là được nhưng không tối ưu. Làm như vậy bạn sẽ mất phí duy trì cả hosting và VPS thứ nữa bạn vẫn phải vào Cpanel cấu hình DNS trên hosting trỏ sang IP của VPS.
Trên thực tế thì ít người làm như vậy vừa phí tiền thuê hosting mà tốc độ truy vấn chậm bạn nào muốn nghiên cứu và chơi lạ cứ thử :). Cách này hữu ích nếu dùng để cấu hình FailOver khi đó hosting sẽ đóng vai trò làm Proxy điều hướng đến các VPS Web Server khi có lỗi xảy ra, chủ đề này tạm gác không bàn đến trong bài này nhé.
Khi đã dùng Nameserver của bên cung cấp VPS bạn khỏi phải quan tâm đến trỏ IP trên Domain nữa vì từ giờ bên cung cấp VPS sẽ làm việc đó, trong khu vực quản trị Domain bạn cũng chẳng nhìn thấy gì nữa, đọc bài viết bên dưới để hiểu thêm.
Nếu dùng nameserver của bên cung cấp VPS bạn vào phần quyản lý DNS để add domain vào. Bên dưới là cách cài đặt DNS Server của ba nhà cung cấp VPS giá rẻ mà mình đang dùng, bạn tham khảo.
Dùng DNS của Linode
Đăng nhập vào phần quản trị DNS của Linode chọn, DNS Manager -> Add a zone rồi nhập domain và email của bạn vào.
Sau đó chọn Add a Master Zone sẽ được kết quả như hình bên dưới.
Dùng DNS của Vultr
Vào Server -> DNS rồi điền đầy đủ thông tin tên miền Vultr yêu cầu là được.
Giao diện quản lý DNS của Vultr sẽ giống thế này:
Dùng DNS của DigitalOcean
Bạn vào Networking -> Domains, khai báo tên miền và chọn VPS Webserver của mình.
Phần quản lý DNS của DigitalOcean cũng gần như Linode và Vultr thôi.
Trên đây là toàn bộ cách thêm Domain vào DNS Server của Linode, Vultr, DigitalOcean. Sau bước này Domain đã cập nhật xong IP mới của VPS rồi, chúng ta chuyển sang phần tiếp theo.
2. Tạo database và user database trên VPS.
Phần này là những kiến thức cũ về cài đặt và cấu hình Web Server, tạo Database trên MySQL (MariaDB) cách thêm một tên miền mới trên Nginx và Apache (Virtualhost)
Các bạn đọc lại tài liệu mình viết trước đó để biết cách làm:
Mặc đính bạn đã dựng được Web Server ngon lành rồi.
Bạn chỉ cần chú ý tạo đúng database name , user name và password đã dùng cho website vì khi không phục lại trang web các thông số kết nối với database không có gì thay đổi. Trường hợp phải tạo mới lại thông tin bạn phải cập nhật thông số mới trong file config của wordpress, mình nói rõ hơn ở bên dưới.
3. Restore website trên VPS
Bước này bạn phải dùng sFTP đẩy dữ liệu đã backup trước đó lên VPS.
Restore source code
Sau đó dùng tar giải nén source code vào đúng đường dẫn đã khai báo khi cấu hình Virtualhost, mỗi người thích đặt source code vào một vị trí khác nhau bạn tham khảo cấu hình bên dưới của mình.
Trên webserver Apache
<VirtualHost *:80>
ServerAdmin admin@thuysys.com
ServerName thuysys.com
ServerAlias www.thuysys.com
DocumentRoot /var/www/thuysys.com/public_html
ErrorLog /var/www/thuysys.com/logs/error.log
CustomLog /var/www/thuysys.com/logs/access.log common
</VirtualHost>
Với apache bạn giải nén toàn bộ source code vào DocumentRoot để phục hồi lại dữ liệu trang web.
Trên webserver nginx.
server {
listen 80;
server_name thuysys.com www.thuysys.com;
root /var/www/thuysys.com/public_html;
access_log /var/www/thuysys.com/logs/access.log;
error_log /var/www/thuysys.com/logs/error.log;
index index.html index.htm index.php;
}
Nginx thì source code sẽ đặt theo đường dẫn của root.
Điều quan trọng nhất không được quên là kiểm tra lại quyền sở hữu thư mục chứa source code, xem bài:
Restore database trên server
Bạn chạy cho mình lênh sau
mysql -u userdb -p123456 dbname < db.sql
Câu lệnh có nghĩa: phục hồi lại database từ file backup có tên db.sql vào cơ sở dữ liệu tên dbname và dùng tài khoản dbuser với password là 123456. Các thông số DB này phải được tạo khi cài mysql.
Thực tế khôi phục database chỉ có bấy nhiêu đó, nếu không thay đổi thông số kết nối nào thì trang web của bạn đã chạy được rồi, còn không bạn phải khai báo lại thông số kết nối database.
Vào source code của website tìm file wp-config.php
đối với mã nguồn WordPress, tham khảo như hình bên dưới.
Với CMS khác bạn cũng phải chỉnh sửa các thông số này, sau đó restart lại webserver và chạy thôi.
Bài viết xin dừng tại đây, các bạn đọc kỹ lại phần cấu hình webserver trên linux trước khi làm đấy là phần tương đối nhiều kiến thức, có gì không hiểu cứ comment bên dưới mình sẽ giải đáp, chúc các bạn thành công.
Chào anh!
Em hỏi không liên quan lắm nhưng vừa qua em có dùng plugin Upraftplus để backup sau đó restore trên một vps khác. Web chạy được bình thường nhưng bị báo là IP chưa đúng với VPS mới. Vậy mình cài ở đâu ạ? (Lưu ý là đã trỏ đúng tên miền, đúng ip, đã cài được ssl)