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 {
	listen 80;
	
	server_name www.hocvps.com;
	rewrite ^(.*) http://hocvps.com$1 permanent;
}

server {
	listen 80;

    	# 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;
 
    	location / {
		try_files $uri $uri/ /index.php?$args;
	}
	
	# Custom configuration
	include /home/hocvps.com/public_html/*.conf;
 
    	location ~ \.php$ {
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
        	include /etc/nginx/fastcgi_params;
        	fastcgi_pass 127.0.0.1:9000;
        	fastcgi_index index.php;
		fastcgi_connect_timeout 300;
		fastcgi_send_timeout 300;
		fastcgi_read_timeout 300;
		fastcgi_buffer_size 32k;
		fastcgi_buffers 8 16k;
		fastcgi_busy_buffers_size 32k;
		fastcgi_temp_file_write_size 32k;
		fastcgi_intercept_errors on;
        	fastcgi_param SCRIPT_FILENAME /home/hocvps.com/public_html$fastcgi_script_name;
    	}
	location ~ /\. {
		deny all;
	}
	location = /favicon.ico {
		log_not_found off;
		access_log off;
	}
	location = /robots.txt {
		allow all;
		log_not_found off;
		access_log off;
	}
	location ~* \.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|eot|svg|ttf|woff)$ {
		gzip_static off;
		add_header Pragma public;
		add_header Cache-Control "public, must-revalidate, proxy-revalidate";
		access_log off;
		expires 30d;
		break;
        }

        location ~* \.(txt|js|css)$ {
	        add_header Pragma public;
		add_header Cache-Control "public, must-revalidate, proxy-revalidate";
		access_log off;
		expires 30d;
		break;
        }
}

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 {
	listen 80;
	
	server_name www.hocvps.com;
	rewrite ^(.*) http://hocvps.com$1 permanent;
}

server {
	listen 80;

    	# 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;
 
    	location / {
		try_files $uri $uri/ /index.php?$args;
	}
	
	# Custom configuration
	include /home/hocvps.com/public_html/*.conf;
 
    	location ~ \.php$ {
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
        	include /etc/nginx/fastcgi_params;
        	fastcgi_pass 127.0.0.1:9000;
        	fastcgi_index index.php;
		fastcgi_connect_timeout 300;
		fastcgi_send_timeout 300;
		fastcgi_read_timeout 300;
		fastcgi_buffer_size 32k;
		fastcgi_buffers 8 16k;
		fastcgi_busy_buffers_size 32k;
		fastcgi_temp_file_write_size 32k;
		fastcgi_intercept_errors on;
        	fastcgi_param SCRIPT_FILENAME /home/hocvps.com/public_html$fastcgi_script_name;
    	}
	location ~ /\. {
		deny all;
	}
	location = /favicon.ico {
		log_not_found off;
		access_log off;
	}
	location = /robots.txt {
		allow all;
		log_not_found off;
		access_log off;
	}
	location ~* \.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|eot|svg|ttf|woff)$ {
		gzip_static off;
		add_header Pragma public;
		add_header Cache-Control "public, must-revalidate, proxy-revalidate";
		access_log off;
		expires 30d;
		break;
        }

        location ~* \.(txt|js|css)$ {
	        add_header Pragma public;
		add_header Cache-Control "public, must-revalidate, proxy-revalidate";
		access_log off;
		expires 30d;
		break;
        }
}

server {
	listen 80;

	server_name www.site1.hocvps.com;
	rewrite ^(.*) http://site1.hocvps.com$1 permanent;
}

server {
	listen 80;

    	# 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;

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

	# Custom configuration
	include /home/hocvps.com/public_html/*.conf;

    	location ~ \.php$ {
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
        	include /etc/nginx/fastcgi_params;
        	fastcgi_pass 127.0.0.1:9000;
        	fastcgi_index index.php;
		fastcgi_connect_timeout 300;
		fastcgi_send_timeout 300;
		fastcgi_read_timeout 300;
		fastcgi_buffer_size 32k;
		fastcgi_buffers 8 16k;
		fastcgi_busy_buffers_size 32k;
		fastcgi_temp_file_write_size 32k;
		fastcgi_intercept_errors on;
        	fastcgi_param SCRIPT_FILENAME /home/hocvps.com/public_html$fastcgi_script_name;
    	}
	location ~ /\. {
		deny all;
	}
	location = /favicon.ico {
		log_not_found off;
		access_log off;
	}
	location = /robots.txt {
		allow all;
		log_not_found off;
		access_log off;
	}
	location ~* \.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|eot|svg|ttf|woff)$ {
		gzip_static off;
		add_header Pragma public;
		add_header Cache-Control "public, must-revalidate, proxy-revalidate";
		access_log off;
		expires 30d;
		break;
        }

        location ~* \.(txt|js|css)$ {
	        add_header Pragma public;
		add_header Cache-Control "public, must-revalidate, proxy-revalidate";
		access_log off;
		expires 30d;
		break;
        }
}

server {
	listen 80;

	server_name www.site2.hocvps.com;
	rewrite ^(.*) http://site2.hocvps.com$1 permanent;
}
server {
	listen 80;

    	# 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 site2.hocvps.com;

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

	# Custom configuration
	include /home/hocvps.com/public_html/*.conf;

    	location ~ \.php$ {
		fastcgi_split_path_info ^(.+\.php)(/.+)$;
        	include /etc/nginx/fastcgi_params;
        	fastcgi_pass 127.0.0.1:9000;
        	fastcgi_index index.php;
		fastcgi_connect_timeout 300;
		fastcgi_send_timeout 300;
		fastcgi_read_timeout 300;
		fastcgi_buffer_size 32k;
		fastcgi_buffers 8 16k;
		fastcgi_busy_buffers_size 32k;
		fastcgi_temp_file_write_size 32k;
		fastcgi_intercept_errors on;
        	fastcgi_param SCRIPT_FILENAME /home/hocvps.com/public_html$fastcgi_script_name;
    	}
	location ~ /\. {
		deny all;
	}
	location = /favicon.ico {
		log_not_found off;
		access_log off;
	}
	location = /robots.txt {
		allow all;
		log_not_found off;
		access_log off;
	}
	location ~* \.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|eot|svg|ttf|woff)$ {
		gzip_static off;
		add_header Pragma public;
		add_header Cache-Control "public, must-revalidate, proxy-revalidate";
		access_log off;
		expires 30d;
		break;
        }

        location ~* \.(txt|js|css)$ {
	        add_header Pragma public;
		add_header Cache-Control "public, must-revalidate, proxy-revalidate";
		access_log off;
		expires 30d;
		break;
        }
}

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.

– Tham khảo cài đặt Let’s Encrypt Wildcard SSL hocvps.com *.hocvps.com
Hoặc, bạn có thể issue chứng chỉ 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 {
	listen   443 ssl http2;
	server_name www.hocvps.com;
	rewrite ^(.*) https://hocvps.com$1 permanent;
         #Paste đoạn SSL xuống dưới
}
server {
	listen   80;
	server_name hocvps.com *.hocvps.com;
	rewrite ^(.*) https://server_name$1 permanent;
    	}
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 {
	listen   443 ssl http2;
	server_name www.site1.hocvps.com;
	rewrite ^(.*) https://site1.hocvps.com$1 permanent;
        #Paste đoạn SSL xuống dưới
}

server {
	listen   80;
	server_name site1.hocvps.com www.site1.hocvps.com;
	rewrite ^(.*) https://site1.hocvps.com$1 permanent;
}

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é.

Comment của bạn

Lưu ý: tất cả comment đều được kiểm duyệt cẩn thận! Nếu có code bạn hãy up lên pastebin.com rồi để lại link trong comment.

53 Comments

  1. ALOgum 1 comment

    Mình đang phát triển website về apk nhiều ngôn ngữ bằng WordPress. Nếu lượng index lên cao liệu dùng wordpress có ổn không vậy admin?
    Thanks a bài viết chất lượng ạ.

  2. tungbk 2 comment

    Hi Admin
    Cho mình hỏi chút. Mình đã có 1 domain chính là domain.com, giờ muốn tạo 1 domain kiểu m.domain.com. Nhưng vẫn muốn chung 1 nội dung thì làm thế nào nhỉ?

  3. Tinh 14 comment

    có plugin nào để
    dùng chung hình ảnh photo trong wordpress multisite ko nhỉ?

  4. Phước 1 comment

    Mình lúc đầu thiết lập subdomain dạng xyz.domain.com nhưng sau thời gian sử dụng cài các plugin vào và ko biết vì sao tự động chuyển sang dạng domain.com/xyz. Cho hỏi có cách nào chuyển đổi lại không. Cám ơn.

    1. Việt Phương Moderator

      Bạn kiểm tra lại các plugin và deactive plugin nếu nghi ngờ nhé. Nếu thiết lập trong Multisite là xyz.domain.com mà bị chuyển về domain.xyz thì lỗi do rewrite link rồi
      Bạn kiểm tra cả phần My Sites – Network Admin – Sites – Add new và Tools – Network Setup

  5. huu phuoc 1 comment

    domain.com/wp-admin (đăng nhập được)
    sub.domain.com/wp-admin (không đăng nhập riêng quản lí từng trang con được – làm sao để đăng nhập được admin)

    1. Việt Phương Moderator

      Bạn truy cập được thông qua dashboard của wp-admin domain chính không?
      Bạn cài Multisite theo sub-domain?

  6. Hai 7 comment

    Chào adm,

    Mình có sử dụng HocVPS và cài Let’s Encrypt Wildcard SSL cho site domain.com, giờ mình muốn tạo multisite trên demo.domain.com theo dạng demo.domain.com/sub-directories, mình cũng setup theo như hướng dẫn nhưng khi vào ../sub-directories thì vào được nhưng mất css thì phải còn demo.domain.com thì không bị gì. Mình chỉ cấu hình ssl cho demo.domain.com thôi thì đã được chưa nhỉ. Giúp mình với.

    Thanks

    1. Việt Phương Moderator

      Nếu multisite dạng sub-directories thì bạn cài Wildcard SSL cho demo.domain để làm gì đâu, SSL bình thường là được mà. Với trong bài này chỉ hướng dẫn SSL cho sub-domain, không áp dụng cho sub-directories

      1. Hai 7 comment

        mình cài Wildcard SSL cho domain.com cơ còn demo.domain.com thì mình để nó tự nhận từ Wildcard SSL chứ không cài thêm chứng chỉ nữa, chỉ cấu hình trong .conf của sub-domain thôi. Ý mình là mình cài multisite dạng sub-directories thì nó bị lỗi như vậy, có cách nào giải quyết không nhỉ?

        1. Việt Phương Moderator

          Vấn đề này mình không rõ rồi, có thể cần cấu hình riêng Nginx cho Multisite dạng sub-directories

  7. Dũng 2 comment

    Xin chào.

    Mình muốn hỏi 1 chút về vấn đề chạy domain riêng cho từng site.

    VD mình có domain chính là abc.com

    Giờ mình muốn dùng domain 123.com cho 1 site con trên hệ thống thì mình phải có phải tạo subdomain 123.abc.com rồi trỏ 123.com vào đó không? Vì mình thấy mục 3.2. chỉ hướng dẫn tạo NGinx cho subdomain chứ không thấy đề cập đến việc chạy tên miềng riêng.

    Rất mong được giúp đỡ.

    1. Việt Phương Moderator

      Bạn muốn trỏ vào đâu cũng được. Bản chất là 123.com đang làm tên khác(Alias) cho 1 cái subx.abc.com bất kì nào đó. Cho nên site con nào đó bạn phải tạo/có thì 123.com nó mới hiển thị được
      Chạy tên miền riêng bạn cần phải sửa SiteURL và WPURL trong Settings của subdomain đó, cũng như dùng Nginx Conf riêng cho subdomain đó
      3.2. Cấu hình Nginx riêng cho từng Subsite.
      Ví dụ server_name site1.hocvps.com site1.com;

      1. Dũng 1 comment

        Cảm ơn Moderator đã hỗ trợ. Tuy nhiên do kiến thức còn hạn chế rất mong được Mod hướng dẫn thêm:

        1. Có plugin nào hỗ trợ xử lý vấn đề này đơn giản hơn không?

        2. Nếu không, quy trình lần lượt để tạo hệ thống site con chạy tên miền riêng bao gồm các bước như thế nào?

        VD mình có tên miền là congty.com. Bây giờ mình muốn tạo 5 sites con, dùng các tên miền: dichvu1.com, dichvu2.com, dichvu3.com, dichvu4.com, dichvu5.com thì mình sẽ phải làm các bước như nào.

        Có phải các bước sẽ là: (1) Tạo các sites con dùng subdomain như dichvu1.congty.com, dichvu2.congty.com…; (2) Trỏ dichvu1.com về dichvu1.congty.com…

        Nói chung đoạn này không có cầm tay chỉ việc nên mình chưa thủng lắm.
        Rất mong được mod hỗ trợ thêm và xin được hậu tạ sau khi xong việc.

        1. Việt Phương Moderator

          1. Plugin cụ thể thì mình không rõ rồi
          2. Thêm bước 3 chỉnh sửa Nginx Conf

  8. tu 2 comment

    Chào Admin !
    Mình đã làm theo hướng dẫn, đã thêm site con dạng website/demoxyz , mình truy cập được site con nhưng ko vào được admin để quản lý. Giờ làm sao để vào được admin a ?!
    Thanks admin trước!

    1. Việt Phương Moderator

      ý bạn là wp-admin? Bạn vào wp-admin của site chính sau ấn ở menu trên cùng bên trái để vào quản lý của từng site con

      1. tu 2 comment

        vẫn không vào được bạn ah, mình tạo site con, rồi vào network admin – > trang web -> click vào website thì ra, nhưng phần quản lý thì ko load được!

  9. hongvi 45 comment

    cho mình hỏi.. mình thêm 1 domain trên hocvps (lệnh 2) … nhưng khi upload code lên thì bị lỗi (Error establishing a database connection) , mình ipconfig chắc chắn đúng rồi ạ…. mình restart lại nginx thì bị lỗi này (nginx: [emerg] unexpected “}” in /etc/nginx/conf.d/newsnasa.com.conf:113
    nginx: configuration file /etc/nginx/nginx.conf test failed) giờ sửa làm sao ạ

    1. Việt Phương Moderator

      Dòng 113 của /etc/nginx/conf.d/newsnasa.com.conf thừa một dấu }
      Bạn kiểm tra lại cả file có {} đầy đủ không, có sửa thừa gì không

  10. thang nguyen 1 comment

    Chào HocVPS Team !
    Cho mjh hỏi chút đi bạn
    Mình đã cài đặt hocvps script và wordpress theo bài này và thành công
    https://hocvps.com/auto-install-hocvps-script-wordpress/
    Hiện tại để log vào wordpress trên vps thì mình phải log bằng địa chỉ IP , chứ k phải domain
    vd như này nè : http://104.123.123.123/wp-admin/
    Bạn cho mình hỏi , h mình muốn tạo Multisite trên WordPress thì làm thế nào ta , mình đọc bài trên rồi , nhưng mà thấy rối quá .

    1. Việt Phương Moderator

      Bạn có hay không có domain để test? Bạn sửa URL trong phần settings của WordPress nhé, khi đó sẽ chỉ truy cập bằng domain
      Vấn đề này xảy ra do khi cài đặt WP bạn truy cập bằng IP, không phải bằng domain

  11. TRI 28 comment

    Chào các bạn,
    Mình cần làm 12 website nội dung khác nhau, tương ứng 12 tên miền khác nhau.
    Tất cả dùng WP. Trường hợp này dùng chức năng này là phù hợp đúng không bạn?

    1. Việt Phương Moderator

      Được bạn nhé. Nhưng thường case như bạn mình thấy nhiều người để 12 website độc lập hơn, sẽ tiện chia tách sau này

  12. Lemon 21 comment

    Hi Ad,
    mình cài SSL Let’s cho các site con như: site1.domain.com, site2.domain.com Tuy nhiên, mình k sử dụng subdomain mà mình map tên miền để dùng bằng domain chính như: domain1.com, domain2.com luôn thì như vậy SSL của Site1, site2 nó sẽ sự động ánh xạ qua domain1, domain2 phải k ạ?

    1. Việt Phương Moderator

      Mình không chắc lắm nhưng khả năng là không bạn nhé, SSL cho site nào thì định danh cho site ý. Bạn sử dụng SSL cho site1 thì khi truy cập bằng domain1 sẽ bị báo sai cert. Nên mình mới hướng dẫn tách mỗi site1 site2 1 cấu hình Nginx riêng, rồi trong Nginx riêng của site1 bạn add thêm domain 1 dạng parked domain. Trong database WordPress Multisite thì sửa URL của site1 thành domain1

  13. Nguyễn Thành Chung 7 comment

    Chào các pr0. Các pr0 cho mình hỏi chút, mình có 1 domain chính trỏ về hosting( sourcecode). Mình muốn mua thêm 05 domain nữa để trỏ về duy nhất 1 hosting đó để chạy song song. Vậy cho mình hỏi với cách này thì có ảnh hưởng gì đến SEO không, mình sợ domain chính của mình sẽ bị ảnh hưởng.Thanks các pro

    1. Việt Phương Moderator

      Về SEO thì mình không rõ rồi. Mình vẫn thấy mọi người chạy nhiều domain trên 1 hosting thôi, sử dụng Add-on Domain. Chắc phải thế chứ không ai dám dùng Hosting nữa 🙂

  14. Thảo Nhi 19 comment

    Bạn ơi ví dụ thế này nhé, mình có 100 domain khác nhau, nhưng 100 domain đó mình muốn chạy trên 1 mã nguồn WP và chung 1 database, dĩ nhiên là dsn 100 domain đó trỏ về vps mà minh chạy site
    Khi vào mỗi domain thì nội dung đường dẫn hay các nội dung trong các domain không bị chuyển hướng
    Kiểu nhỉ khi vào domain aaa.com thì vào bất kể bài nào topic nào địa chỉ vẫn là aaa.com
    ( các site có nội dung và hình thức chắc chắn giống nhau rồi) có cách nào như vậy với WP ko bạn
    P/S: Mình trước cài phpbb hay mybb trên thư mục gốc của vps , khi các domain trỏ về vps thì các domain đó có nội dung chung. Ý mình là kiểu thế với WP

    Có thể ý của mình không dc rõ hoặc nói hơi khó hiểu nhưng cũng rất mong ai đó hiểu và có phương án

    Thanks

    1. Việt Phương Moderator

      Ý bạn là 100 domain chung 1 nội dung? Khá là khó, do domain của WP lưu trong database, mục WP_HOME và WP_SITEURL. Nên khi đó dù Parked Domain vẫn sẽ bị redirect ở bài viết (do database đã quy định rồi). Bạn thử cách này xem (không cần đến Multisite nhé)
      1. Giả sử domain chính là A, database A
      2. Thêm Parked Domain B vào A, C vào A….
      3. Thêm đoạn sau vào file wp-config.php
      //Multi Domain for a site
      define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
      define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);

      4. Restart lại PHP-FPM và Nginx

  15. khánh 1 comment

    Cho mình hỏi, mình muốn 1 database nhân lên nhiều site chạy nhiều subdomain thì dùng cái này có được không.

    1. Việt Phương Moderator

      Nhân lên nhiều site là sao bạn. Là các subdomain giống hệt nhau (cùng nội dung) á? Hay ý bạn là nhiều site(subdomain) chung 1 file database nhưng nội dung hoàn toàn khác biệt?

  16. Đinh Lê Giang 51 comment

    Luân ơi, có cấu hình được cho dạng subdir không? domain.com/subdir

    1. Việt Phương Moderator

      Có cấu hình được dạng subdir, nhưng bài viết này mình chủ yếu đề cập dạng subdomain cũng như cấu hình Nginx áp dụng cho dạng subdomain.
      Do subdir nên cài trên site mới, tránh xung đột với các URL gốc ban đầu

    2. Trung Huỳnh 12 comment

      Sub-directory thì thêm đoạn sau vào trước location / { là được
      if (!-e $request_filename) {
      rewrite /wp-admin$ $scheme://$host$uri/ permanent;
      rewrite ^(/[^/]+)?(/wp-.*) $2 last;
      rewrite ^(/[^/]+)?(/.*\.php) $2 last;
      }

      1. Phú Phạm 3 comment

        Cụ thể hơn được ko bạn, mình đang ko rõ chỗ này, đang cài dạng sub-dir mà bị lỗi, view site nó ko hiện

          1. Phú Phạm 3 comment

            Lệnh sao vậy Admin, em ko rành, chỉ có làm theo hướng dẫn thôi, mong Ad giúp!

          2. Việt Phương Moderator

            Sửa file thủ công thôi. Bước 3 bạn cấu hình Nginx Webserver như thế nào thì việc này làm như thế đó

          3. Con Gà 3 comment

            Làm giúp anh em bài hướng dẫn cho Subdir trên HOCVPS luôn đi ad :”(

  17. Kim Vàng 4 comment

    Cái này có cái bất tiện đó là nó lưu vào trong 1 file data nên sau chuyển ra từng website cho từng host không biết khó khăn không bạn.

    1. Việt Phương Moderator

      Mình chưa hiểu ý bạn lắm. Ý bạn là database hay data? Còn như mình đã note, sẽ khó nếu bạn muốn tách riêng 1 site sau này