Nếu mình không lầm thì mình đã viết 2 lần hướng dẫn cách cài đặt WordPress trên môi trường VPS cũng như cách chuyển dữ liệu của một website có sẵn về VPS rồi. Nên ở bài này mình sẽ không hướng dẫn lại mà sẽ trỏ link bạn tới những bài mà bạn cần xem nếu chưa biết cách cài đặt. Nhưng hầu hết các cách đó mình sử dụng WP CLI nên ở trong serie này là mình sẽ không sử dụng WP-CLI để cài đặt mà sẽ cài đặt hoàn toàn bằng thủ công.
Cài đặt mới một trang WordPress
Cách tạo database bạn hãy xem lại bài Cài đặt MariaDB.
Sau đó cd vào thư mục public_html của domain bạn đang sử dụng. Ví dụ:
cd /home/nginx/abcxyz.com/public_html
Và xóa hết tất cả các file có trong thư mục đó đi bằng lệnh này:
rm -rf *
Bây giờ ta chỉ việc tải source (file .zip) của WordPress về VPS bằng lệnh wget:
wget https://wordpress.org/latest.zip
Gõ ls xem đã có file latest.zip chưa nào.
Có rồi thì giải nén ra với lệnh unzip (nếu báo command not found thì gõ yum install unzip
)
unzip latest.zip && mv wordpress/* . && rm -rf wordpress
Giờ thì ls lại ta thấy đã có các file và thư mục nguồn của WordPress ngự trị tại thư mục public_html.
Còn một việc cần làm nữa là gắn user nginx và group nginx để sở hữu các file và thư mục trong này:
chown -R nginx:nginx *
Ok, bây giờ bạn chỉ cần việc truy cập vào đường dẫn http://abcxyz.com rồi cài WordPress như thường thôi.
Chuyển website khác về máy chủ
Chắc chắn ở đây ai cũng đã có một website WordPress riêng nên sẽ cần tìm hiểu cách chuyển một website WordPress từ host khác về VPS này để sử dụng.
Hướng dẫn chuyển host về VPS mình đã có viết rất chi tiết tại đây nên bạn có thể xem qua.
Cấu hình NGINX cho WordPress
Do NGINX không sử dụng file .htaccess nên chúng ta cũng không thể nào mà sử dụng các nội dung trong file .htaccess như ở Apache để làm các công việc như rewrite đường dẫn sử dụng Permalink, bảo mật,…
Thiết lập rule cho Permalink
Bây giờ bạn hãy mở file cấu hình của domain bạn trong NGINX ra, ví dụ /etc/nginx/domains/abcxyz.com.conf và tìm:
location / {}
Chèn đoạn sau vào giữa nó
try_files $uri $uri/ /index.php?$args;
Chèn đúng là nó sẽ nhìn giống thế này:
location / {
try_files $uri $uri/ /index.php?$args;
}
Lưu lại và gõ lệnh service nginx restart
để khởi động lại NGINX.
Thiết lập NGINX cho các plugin quan trọng (iThemes Security, W3 Total Cache,…)
Hiện nay đa phần các plugin nổi tiếng và quan trọng trong WordPress đều có hỗ trợ cho NGINX bằng cách tự thêm các rules của nó vào file nginx.conf trong thư mục public_html (chưa có nó sẽ tự tạo). Do đó chúng ta chỉ cần include file này vào phần cấu hình của domain mà thôi.
Đầu tiên bạn xem trong thư mục public_html đã có file nginx.conf hay chưa. Nếu chưa có, thì hãy tạo ra và đừng viết gì vào. Và chown file này cho user nginx và group nginx để nó có thể tự ghi nội dung vào.
chown nginx:nginx /home/nginx/abcxyz.com/public_html/nginx.conf
Sau đó mở file /etc/nginx/domains/abcxyz.com.conf và tìm:
include /etc/nginx/conf.d/staticfiles.conf;
Thêm vào dưới
include /home/nginx/abcxyz.com/public_html/nginx.conf;
Khởi động lại NGINX
service nginx restart
Bây giờ bạn có thể thử bằng cách cài plugin iThemes Security vào và kích hoạt chức năng đổi đường dẫn đăng nhập (Hide Login Area), nó sẽ tự ghi nội dung vào file nginx.conf nhưng bạn sẽ cần phải restart lại NGINX thì các rule đó mới hoạt động được, không giống như .htaccess.
Chuyển rule từ .htaccess sang NGINX
Nếu một số plugin nào nó chỉ hỗ trợ cho .htaccess mà không tự viết rule cho NGINX vào file nginx.conf thì bạn vẫn còn cách khác đó là dùng công cụ htaccess to NGINX converter để lấy code cấu hình cho NGINX vì bản thân cách thức hoạt động của cả 2 là giống nhau, chỉ khác ở cú pháp mà thôi.
Tăng tốc cho WordPress trên máy chủ
Nếu bạn sử dụng máy chủ và cài LEMP ở serie này, mình khuyến khích các bạn xem hướng dẫn W3 Total Cache để hỗ trợ tăng tốc WordPress tốt nhất trên môi trường máy chủ.
Lời kết
Vậy là coi như bây giờ bạn đã biết cách tạo một webserver sử dụng LEMP Stack và cài WordPress lên đó, bạn có thể sử dụng ngay bây giờ nhưng ở các bài sau, mình sẽ hướng dẫn bạn cài đặt thêm một số “phụ kiện” rất hay dành cho NGINX nữa để bạn có tốc độ load tốt hơn.