Cách tạo multisite với Cs-cart

Cs-cart có chức năng tạo Storefront – tạo nhiều website với domain khác nhau nhưng sử dụng chung mã nguồn và bảng điều khiển.
Việc thêm cửa hàng cũng khá đơn giản nếu bạn sử dụng http. Nhưng ở bài này mình sử dụng https, vì vậy phải thêm chứng chỉ ssl.

:warning: Tất cả các tên miền cửa hàng phải có IP giống nhau.
Bài này được thực hiện trên hệ thống Ubuntu + Nginx + Webinboly. Vậy nên có 1 số câu lệnh (ssl) chỉ sử dụng được với webinoly. Nếu bạn sử dụng cấu hình khác, hãy cân nhắc kỹ trước khi thực hiện.

Để tùy biến hướng dẫn theo tên miền của bạn, hãy nhập tên miền của bạn vào trường bên dưới:

Tên miền CS-Cart chính

Tên miền cửa hàng

Thêm Storefront

Quản trịCửa hàng – nhấn nút :heavy_plus_sign: (để thêm cửa hàng mới)

image

  • Nhập tên cửa hàng: –
  • Url trang chủ: tên miền cửa hàng
  • Hoàn thành các thông tin còn lại

Sau khi điền đầy đủ thông tin, hãy lưu lại.

Hãy truy cập tên miền trên trình duyệt để xem kết quả nhé.

Kích hoạt ssl

Cửa hàng chính đang hoạt đông với ssl

Cài đặtCài đặt bảo mật – tíc chọn: Sử dụng kết nối an toàn cho cửa hàngLưu
Tùy thuộc vào vps của các bạn để lúc này ssl đã hoạt động được hay chưa. Về cơ bản nó hoạt động giống với kiểu alias hoặc parker do main. Với mình thì ssl vẫn chưa hoạt động nên sẽ có các bước tiếp theo.

sudo site =example.com= -parked==mainsite.com=
sudo site =example.com= -ssl=on
  • =example.com= là website mới
  • =mainsite.com= là website chính cài đặt cs-cart

Nếu có thông báo dã tạo ssl thành công thì chúng ta tiếp tục nhé.

Truy cập 2 url bên dưới để kiểm tra nhé

http://=example.com=/store_closed.html
https://=example.com=/store_closed.html

Với trường hợp sử dụng wordpress multisite thì tới bước này tên miền đã hỗ trợ ssl rồi. Ấy thế mà chẳng hiểu lý do gì ssl vẫn chưa hoạt động.
Bước tiếp theo: mở file /etc/nginx/sites-available/=example.com=

server {
	listen 80;
	listen [::]:80;
	server_name =example.com= www.=example.com=;
   
	access_log off; 
	error_log /var/log/nginx/=example.com=.error.log;
	
	root /var/www/=mainsite.com=/htdocs;
		
	index index.php index.html index.htm;
	
	include common/auth.conf;
	...

Rõ ràng rồi, cấu hình trên chưa bao gồm cấu hình SSL 443. Bên dưới là file cấu hình đầy đủ của mình.


# WebinolyNginxServerStart
server {
	listen 80;
	listen [::]:80;
	server_name =example.com= www.=example.com=;
  return 301 https://$host$request_uri;
}
server {
	listen 443 ssl http2;
	listen [::]:443 ssl http2;
 	server_name =example.com= www.=example.com=;
  
 	ssl_certificate /etc/letsencrypt/live/=example.com=/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/=example.com=/privkey.pem;
	ssl_stapling on;
	ssl_stapling_verify on;
	ssl_trusted_certificate /etc/letsencrypt/live/=example.com=/chain.pem;
 
	access_log off; 
	error_log /var/log/nginx/=example.com=.error.log;
	
	root /var/www/=mainsite.com=/htdocs;
		
	index index.php index.html index.htm;
	
	include common/auth.conf;
	
	# WebinolyCustom
	# WebinolyCustomEnd
	
	include common/phpx.conf;
	include common/locations.conf;
	include common/headers-http.conf;
	include common/headers-html.conf;
	include /var/www/=example.com=/*-nginx.conf;
}
# WebinolyNginxServerEnd

Sau khi lưu lại, đừng quên kiểm tra và khởi động lại nginx

nginx -t
nginx -s reload