Kích hoạt WordPress Multisite trên Server

WordPress Multisite là một tính năng của WordPress cho phép thiết lập và quản lý mạng lưới (Network) nhiều website trên 1 mã nguồn gốc WP duy nhất. Thông qua tính năng này, việc tạo lập và quản lý hệ thống site trên cùng Hosting/VPS trở nên đơn giản và dễ dàng hơn bao giờ hết.

Ví dụ, với hocvps.com ban đầu, bạn hoàn toàn có thể thiết lập và quản lý hệ thống subdomain bao gồm nginx.hocvps.com – chuyên về Nginx webserver, apache.hocvps.com – chuyên về Apache… với nội dung hoàn toàn khác biệt trên cùng 1 mã nguồn WP ban đầu.

Hoặc, bạn có thể thiết lập Landing page công ty cùng hệ thống subsite về những nhóm hàng lớn.


– Các lưu ý về hệ thống WordPress Multisite:

  • Quản lý hệ thống dễ dàng và tập trung. Việc quản lý cũng như cập nhật phiên bản WP, Plugin, Theme của toàn bộ hệ thống trở nên đơn giản và thuận tiện hơn. Bên cạnh đó, WP Multisite giúp tiết kiệm tài nguyên, rõ ràng việc cài đặt 1 WP cho nhiều site sẽ nhẹ hơn là cài đặt mỗi site một bản WP.
  • Về data: Toàn bộ hệ thống chung 1 thư mục WP. Dữ liệu upload của site chính lưu tại wp-content/uploads còn subsite tại wp-content/uploads/sites/id/ (mỗi subsite 1 ID – 1 thư mục)
  • Về database: Toàn bộ hệ thống chung 1 database. Các subsite được sao chép thêm các table cho riêng mình, bao gồm wp_2_commentmeta, wp_2_comments, wp_2_links, wp_2_options, wp_2_postmeta, wp_2_posts, wp_2_termmeta, wp_2_terms, wp_2_term_relationships, wp_2_term_taxonomy (tương tự với subsite thứ 3, 4…). Vì vậy, cùng database nhưng mỗi subsite sẽ có nội dung riêng, theme riêng.
  • Về domain, bạn hoàn toàn có thể map domain riêng cho từng subsite, ví dụ script-vps.com tương đương script.hocvps.com.
  • WP Multisite chỉ kích hoạt trên WP được cài đặt tại thư mục gốc root của web(ví dụ /public_html/), không phải trong thư mục con. Đồng thời WordPress address (URL) phải là domain (không phải localhost/IP).

Có thể thấy, ưu điểm lớn nhất của WP Multisite chính là quản lý tập trung. Nếu quản lý hệ thống nhiều site riêng biệt trên mã nguồn WP, bạn hoàn toàn có thể thiết lập 1 Network Multisite rồi tiến hành MapDomain. Khi đó, chỉ cần quản lý tập trung tại một mã nguồn WP duy nhất. Ở phương diện người dùng, đây vẫn là các site riêng biệt.

Tuy vậy, hạn chế của WP Multisite chính là sự riêng rẽ, tách biệt. Bạn không nên sử dụng WP Multisite trong các trường hợp sau:

  • Chạy nhiều site trên nhiều Hosting/VPS khác nhau.
  • Bạn cần database riêng (lý do bảo mật…). Tất cả các site trong Network Multisite sẽ chung 1 database, chỉ khác biệt các table trong đó.
  • Bạn có ý định sau này chuyển riêng vài subsite sang 1 hosting/VPS khác

Như vậy, các bạn đã hiểu phần nào hệ thống WP Multisite cùng ưu, nhược điểm của nó. Giờ mình sẽ tiến hành cài đặt trên VPS sử dụng HocVPS Script (các hệ thống khác hoàn toàn tương tự, chỉ cần chú ý phần cấu hình cho websever Nginx). Trước khi thao tác nhớ backup site nhé.

1. Cài đặt WordPress Multisite.

_ Để kích hoạt Multisite Network, bạn chỉnh sửa tập tin wp-config.php (nằm trong thư mục gốc của site) bằng cách chèn đoạn sau vào bên dưới hàm PHP < ?php

define( 'WP_ALLOW_MULTISITE', true );

_ Sau đó, restart PHP-FPM để xóa Opcache: # service php-fpm restart

_ Truy cập trang quản trị /wp-admin/ mục Tools – Network Setup để bắt đầu cài đặt:


Trong đó, các tùy chọn về đường dẫn của hệ thống sites trong Network:

  • Sub-domain: Các subsite có địa chỉ dạng subdomain của site chính, ví dụ xxx.hocvps.com Đây là kiểu thiết lập thường thấy và là mục đích chính khi sử dụng Multisite của đa số người dùng. Bạn cần thiết lập Subdomain Record trỏ về IP VPS trong quản lý DNS. Wildcard record * có thể thay cho toàn bộ các subdomain.

  • Sub-directory: Các subsite có địa chỉ dạng thư mục con của site chính, ví dụ hocvps.com/xxx Nếu bạn thực sự cần thiết lập dạng này, hãy cài đặt trên 1 hệ thống WP mới để tránh xung đột với các URL có sẵn.

_ Thông báo Create a Network of WordPress Sites hiện ra. Đối với hệ thống sử dụng Nginx webserver (HocVPS, CentminMod…) các bạn chỉ cần thực hiện bước 1 theo yêu cầu.

Cụ thể, chỉnh sửa wp-config.php bằng cách thêm đoạn yêu cầu vào phía trên dòng /* That’s all, stop editing! Happy blogging. */ rồi lưu lại.

define('MULTISITE', true);
 define('SUBDOMAIN_INSTALL', true);
 define('DOMAIN_CURRENT_SITE', 'hocvps.com');
 define('PATH_CURRENT_SITE', '/');
 define('SITE_ID_CURRENT_SITE', 1);
 define('BLOG_ID_CURRENT_SITE', 1);

Lưu ý: Nếu thông báo Warning! Wildcard DNS may not be configured correctly thì các bạn kiểm tra lại Wildcard Record * đã được trỏ đúng đến IP VPS chưa.

_ Thiết lập thành công, truy cập lại hệ thống qua /wp-admin/.

2. Tạo Subsite trong hệ thống Multisite.

_ Để tạo subsite trong hệ thống WP Multisite, các bạn truy cập trang quản lý /wp-admin/ phần My Sites – Network Admin – Sites – Add new đồng thời điền đầy đủ thông tin theo yêu cầu

3. Cấu hình Nginx Webserver cho domain.

_ Sau khi tạo subsite thành công, bạn cần cấu hình Nginx Webserver để toàn bộ site chính và subsite hiển thị cùng 1 thư mục root web trên VPS. Ví dụ, site chính hocvps.com và các subsite *.hocvps.com cùng thư mục root web là /home/hocvps.com/public_html:

server_name hocvps.com *.hocvps.com;
 root /home/hocvps.com/public_html;
 

Để thực hiện, bạn có thể làm theo 1 trong 2 cách dưới. Với kinh nghiệm cá nhân, các bạn nên cấu hình Nginx riêng cho từng subsite (cách 2) để tiện quản lý và thiết lập.

  • Cách 1: Thiết lập 1 cấu hình Nginx duy nhất cho toàn bộ hệ thống WP Multisite.
  • Cách 2: Thiết lập từng cấu hình Nginx riêng cho mỗi site chính và các subsite.

3.1. Cấu hình Nginx duy nhất cho toàn bộ hệ thống WP Multisite.

Bạn cần chỉnh sửa tại block server quy định thư mục root của site để nhận toàn bộ các server_name (bao gồm site chính và các subsite).

  • Ưu điểm: Dễ thao tác, chỉnh sửa 1 lần đáp ứng cho toàn bộ site trong hệ thống Multisite Network. Cấu hình nhanh HTTPS với Wildcard SSL.
  • Nhược điểm: Không có cấu hình riêng của từng subsite, khó quản lý việc Rewrite URL hay cài đặt SSL riêng (mỗi subsite 1 SSL).

Hệ thống HocVPS lưu Nginx Conf tại /etc/nginx/conf.d/. Cụ thể:

server 
 
 server css)$ 
 
 

3.2. Cấu hình Nginx riêng cho từng Subsite.

Với phương pháp này, mỗi subsite sẽ có 1 cấu hình Nginx riêng biệt, giúp cho việc thiết lập RewriteURL hay cài đặt SSL sẽ trở nên dễ dàng hơn. Trên kinh nghiệm cá nhân, các bạn nên sử dụng cách này để cấu hình Nginx webserver cho WP Multisite.

Cụ thể, bạn cần sao chép cấu hình Nginx của site chính ra file cấu hình riêng cho subsite, đồng thời chỉnh sửa server_name và rule rewrite từng subsite cho phù hợp.

Từ HocVPS v2.0, việc cấu hình Nginx cho WP Multisite trở nên đơn giản hơn bao giờ hết với chức năng 12) Them Park Domain. Bạn chỉ cần thiết lập subsite là Park Domain của site chính. Hệ thống sẽ tự tạo cấu hình Nginx riêng cho subsite.

server 
 
 server docx
 

server 
 
 server js
 

server 
 server pdf
 

3.3. Cấu hình Webserver cho SSL.

Thông thường, chứng chỉ SSL các bạn mua là Domain Validation SSL – chỉ áp dụng cho domain được đăng kí, không bao gồm các tên miền cấp dưới, ví dụ chỉ áp dụng cho hocvps.com.

Bên cạnh đó còn có chứng chỉ Wildcard SSL hỗ trợ bảo mật cho toàn bộ các tên miền cấp dưới, ví dụ áp dụng cho hocvps.com và toàn bộ các subdomain dạng *.hocvps.com

Như vậy, để bảo mật cho toàn bộ hệ thống, bạn cần sử dụng chứng chỉ Wildcard SSL hoặc mỗi subsite 1 Domain Validation SSL để cấu hình SSL.

Hiện tại, Let’s Encrypt không phát triển chức năng Wildcard SSL, tuy nhiên bạn lại có thể tạo bao nhiêu cert tùy thích. Khi cài đặt chỉ cần nhập toàn bộ domain và subdomain tương ứng. Mỗi khi có subsite mới bạn cập nhập lại chứng chỉ để update file cert.

hocvps.com www.hocvps.com site1.hocvps.com site2.hocvps.com

Hoặc, bạn có thể issue cert riêng cho từng subsite sử dụng cấu hình Nginx riêng (cách 3.2)

Về cấu hình cụ thể phần SSL, các bạn tham khảo hướng dẫn cài đặt chứng chỉ SSL hoặc Let’s Encrypt

Trong bài viết này, mình sẽ chỉ đề cập cách cấu hình Redirect về HTTPS cho cả hệ thống.

– Nếu bạn sử dụng 1 cấu hình Nginx duy nhất cho cả hệ thống WP Multisite (cách 3.1)

server 
 server 
 server {
 	listen   443 ssl http2;
     	# access_log off;
 	access_log /home/hocvps.com/logs/access.log;
     	# error_log off;
     	error_log /home/hocvps.com/logs/error.log;
 	
     	root /home/hocvps.com/public_html;
 	index index.php index.html index.htm;
     	server_name hocvps.com *.hocvps.com;
         #Paste đoạn SSL xuống dưới
 

– Nếu bạn thiết lập cấu hình Nginx riêng cho từng Subsite (cách 3.2), bạn cần có chứng chỉ SSL cho riêng subsite đó và thiết lập SSL trong từng file cấu hình Nginx riêng như bài hướng dẫn. Ví dụ cấu hình Nginx của site1.hocvps.com

server 
 
 server 
 
 server {
 	listen   443 ssl http2;
     	# access_log off;
 	access_log /home/hocvps.com/logs/access.log;
     	# error_log off;
     	error_log /home/hocvps.com/logs/error.log;
 	
     	root /home/hocvps.com/public_html;
 	index index.php index.html index.htm;
     	server_name site1.hocvps.com;
         #Paste đoạn SSL xuống dưới
 

Như vậy, về cơ bản các bạn đã hiểu cách thiết lập và cấu hình hệ thống website sử dụng WordPress Multisite. Hi vọng các bạn có thể áp dụng thành thạo cho hệ thống của mình. Nếu có vấn đề gì, hãy comment hỏi bên dưới nhé.

Nguồn: https://hocvps.com/kich-hoat-wordpress-multisite/

Comments

Add Comment