Khi chuyển web wordpress sang server mới hay triển khai một SSL certificate cho nhiều server để thực hiện Load Balancing hoặc triển khai kỹ thuật mới cho server như sử dụng module google pagespeed để tối ưu …, bạn cần thực hiện như sau để chuyển thành công 1 website wordpress:

1. Nguyên tắc:

Để giữ nguyên SSL certificate, bạn cần chuyển các key đang sử dụng ở server hiện tại (xem location của file trong đường dẫn file domain.conf như private key, public key, và certificate chain).

           + Để chuyển các key nói trên, bạn hãy copy các certificate files tương ứng và chuyển chúng sang server mới sẽ triển khai web. Bạn có thể tìm đường dẫn của các file trong file cấu hình web. (VD: trong nginx, file cấu hình website của bạn được lưu trong thư mục: /etc/nginx/conf.d/domain.conf) => sử dụng nano để xem nội dung file & tìm đường dẫn của các file SSL Certificate nói trên.

2. Cách chuyển/clone website wordpress cụ thể cho Nginx:

2.1 Chuyển file certificate SSL:

+ Cách 1: Sử dụng lệnh Rsync để copy thư mục chứa SSL certificate từ server cũ sang server mới:

                  . Tạo thư mục chứa SSL tại vps đích

                 . Dùng lệnh Rsync để copy các file certificate từ folder server nguồn sang server đích. Chú ý: cần copy đúng file gốc (nếu copy symlink tại VPS nguồn thì rsync chỉ tạo ra symlink ở VPS đích) 

  + Cách 2: nếu sử dụng Rsync gặp trục trặc, bạn tạo file key theo dường dẫn tương ứng trong vps mới => copy nội dung key trên server cũ & paste vào các file tương ứng trong thư mục chứa key trên server mới. 

2.2 Tạo site wordpress từ source code

Tạo web wordpress với domain của web cần move như bình thường – up tay hoặc dùng scripts như vpssim/hocvps tạo tự động cho nhanh

(Lưu ý: Để tránh web down do trỏ domain về server mới trong lúc đang cài đặt, bạn chỉnh sửa file hosts của máy tính theo hướng dẫn CHỈNH SỬA HOSTS để một mình bạn vào web tại server mới còn khách vẫn vào web trên server hiện tại – website của bạn sẽ không bị downtime bất kỳ lúc nào) => Nên sử dụng công cụ theo dõi up time của web như Uptime Robot (free).

+ Upload source code của website cần restore lên (có thể sử dụng plugin restore cho nhanh như Updraft plus…). Sau khi restore website mới sẽ không vào được (do source website restore có đường dẫn là https còn web vừa setup là http). 

+ Quay lại ssh và chỉnh sửa file domain.conf (/etc/nginx/conf.d/domain.conf) để sử dụng ssl certificate đã copy ở trên. Cách nhanh nhất để chỉnh sửa file config này là copy file config của một web dùng ssl do vpssim tạo ra, sau đó sửa domain trong file conf thành domain của web cần restore. VD: web cần restore là xyz.com & lấy file conf của abc.com => sửa toàn bộ abc.com thành xyz.com. 

+ Phân quyền cho nginx đọc file: sử dụng chức năng phân quyền của vpssim hoặc lệnh: chown -R nginx:nginx /home (nếu không phân quyền sẽ bị lỗi “no input file specified”.

+ Sau đó restart nginx là ok.  

+ Sau khi restore, có thể bạn sẽ gặp lỗi permalink “chỉ vào được trang chủ, còn các trang khác bị lỗi 404” => bạn cần update permalink cho site:

    . Nếu dùng Nginx, bạn mở file domain.conf ra và thêm block sau vào (dùng cho site đặt tại root folder)

location / {
    index index.php index.html index.htm;
    try_files $uri $uri/ /index.php?$args;
}

Tham khảo thêm: https://nginxlibrary.com/wordpress-permalinks/  

    . Nếu dùng apache, cần sửa file /etc/httpd/conf/httpd.conf rồi vào wp-admin => setting => update lại permalink => tham khảo tại đây

Chú ý: Nếu vps của b chưa có một số file cấu hình như dhparam.pem hoặc cần chỉnh sửa một số dòng trùng lặp trong file domain.conf (do file conf của cache hoặc một cấu hình server nào đó mà bạn đang sử dụng) => sử dụng “systemctl status nginx.service” để theo dõi lỗi và sửa theo từng lỗi đó là sẽ ok.