Làm thế nào cài WordPress trong Sub-folder Nginx / Apache?

cách cài đặt wordpress vào thư mục con trên NginX và apache

Bạn muốn cài đặt wordpress vào thư mục con trên Nginx? Bạn muốn chạy nhiều website wordpress trên VPS nhưng không phải bằng sub-domain. Bài viết này mình sẽ chia sẻ cách mình chuyển website sử dụng nhiều database trong thư mục con từ share hosting (máy chủ apache) sang VPS (máy chủ Nginx).

Vấn đề gặp phải khi cài wordpress vào thư mục con Nginx

Xin lưu ý: Mình đang chuyển hosting đã cài đặt thành công wordpress trong thư mục con trên share hosting (phần mềm máy chủ web apache) sử dụng cấu hình file .htaccess . Website đang hoạt động bình thường nhưng khi chuyển sang VPS (chạy hệ điều hành ubuntu và phần mềm máy chủ web Nginx) thì không chạy được vì máy chủ Nginx không dùng .htaccess . Bạn có thể gặp một số vấn đề sau khi mới chuyển từ share hosting sang VPS:

  • Bạn không thể cài đặt được máy chủ chạy website trên VPS vì bạn không biết cài phần mềm quản lý. Ở share hosting có cài sẵn Cpanel nhưng sang VPS bạn phải tự cài đặt hết tất cả mọi thứ. Nếu bạn muốn có Cpanel như bên Share hosting bạn phải trả thêm khoản phí khá đắt. Đừng lo lắng bạn có thể dùng các script quản trị vps được chia sẻ sẵn như: Hocvps script, HOSTVN Script, LarVPS script
  • Website không hoạt động khi cài đặt và gặp lỗi 521 khi truy cập . Đây là lỗi từ chối kết nối. Trong trường hợp này bạn có thể xem hướng dẫn fix lỗi 521 web server is down
  • Khó khăn trọng việc dùng kết nối SSH, up code, backup dữ liệu. Không còn cách nào khác, bạn bắt buộc phải tìm hiểu thêm cách sử dụng các phần mềm ssh client. ( Bitvise ssh, Putty….)

Cách cài đặt website wordpress trong thư mục con

Có một cách dễ dàng đó là: Cài đặt WordPress Multisite Network để dùng một tên miền với nhiều website riêng biệt dạng sub-domaint ( dạng abc.domain.com) hoặc dùng sub-forder – thư mục con (subdirectory dạng domaint.com/abc).

Tuy nhiên khi bạn muốn cài 2 website với 2 database riêng biệt , 2 tài khoản quản trị riêng. Bạn sẽ phải cài 2 website wordpress khác nhau. Với sub-domaint thì đơn giản rồi. Nó được tính như là 1 tên miền riêng. Nhưng với sub-forder thì bạn cần phải cấu hình rewrite url để có thể chạy được website trong thư mục con. Nếu bạn không sửa nó sẽ chuyển thành trang 404

Cài đặt website wordpress trong thư mục con máy chủ NginX

Khác với máy chủ Apache, máy chủ Nginx không sử dụng file .htaccess nên khi bạn cần rewrite url sẽ phải convert qua rule của Nginx. Dưới đây là mã rule của Nginx để chạy website trong thư mục con.

Khi sử dụng, bạn hãy thêm vào file cấu hình conf của tên miền, với các Script quản lý VPS thì các file cấu hình này thường nằm trong thư mục /etc/nginx/conf.d/

Để chạy được WordPress ở thư mục con, bạn hãy thêm đoạn code sau vào đằng trước block location / { … }

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

Trong đó bạn thay wordpress bằng sub-forder của bạn.

Bạn không phải chuyên gia quản trị VPS, bạn không hiểu về code củng các loại. => Bạn không biết đặt nó ở chỗ nào. Dưới dây là ví dụ của mình. Hi vọng giúp được bạn.

Đặt ở đâu? => Đặt ở file config với domain bạn muốn cấu hình. Không phải ở file default

Tìm vị trí đặt code ở đâu? => Xem ảnh bên dưới làm ví dụ

Với HOSTVN Script chạy trên ubuntu

nginx config sub-forder
Ví dụ mình cài thêm 2 website trong 2 forder domain.com/vi/ và domain.com/guest/ bên dưới tên miền chính áp dụng trên HOSTVN Script

Với Hocvps Script chạy trên Centos 7

nginx config hocvps
Trong Hocvps script chạy trên centos file config bạn tìm và đặt code lên bên trên mã location đầu tiên

Bonus Cài đặt website wordpress trong thư mục con máy chủ Apache

Thông tin thêm cho bạn nào dùng share hosting mà chưa biết cài đặt wordpress trong thư mục con. Bạn thêm đoạn code sau trong file .htacces ở site thứ 2 nằm trong thư mục con :

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /your-subdirectory/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /your-subdirectory/index.php [L]
</IfModule>
# END WordPress

Nhớ thay thế đường dẫn your-subdirectory thành đường dẫn của bạn.

Giờ bạn có thể thực hành quản trị VPS những bước đầu tiên trước khi trở thành người chuyên nghiệp rồi. Vì không phải dân chuyên nghiệp. Mình đã mất khá nhiều thời gian tìm hiểu mới chuyển thành công cái website lên thư mục con NginX. Ban đầu mình đã từng thôi bỏ VPS trở về dùng hosting cho lành. Nhưng khi website của bạn có nhiều lượt truy cập, việc chuyển sang VPS là lựa chọn không thể thiếu nếu bạn muốn tiết kiệm tiền mà website vẫn hoạt động khỏe. Chúc các bạn thành công! Hãy giúp người khác bằng cách bình luận những kinh nghiệm của cá nhân bạn tại mục bình luận bên dưới.

Hiếu NX
Hiếu NX tên thật là Nguyễn Xuân Hiếu. Từng tốt nghiệp cử nhân ngành công nghệ điện tử viễn thông. Anh ấy làm việc trong lĩnh vực digital marketing, yêu thích khởi nghiệp, đam mê Vịnh Xuân Quyền.