Để dễ dàng hơn, hãy nhập domain của bạn vào bên dưới.
Domain
Lưu ý: bài viết dưới được thực hiện trên hệ thống Ubuntu 18.04 + Webinoly. Xem Hướng dẫn cài đặt Webinoly trên server.
Công cụ hỗ trợ: Mobaxterm ( vì mình không quen với dòng lệnh nên sử dụng cái này cho dễ.
1. Tạo website
sudo site =aznet.io= -php
sudo site =aznet.io= -ssl=on
Trên là lệnh tạo website của Webinoly. Bạn sẽ cần sử dụng lênh tạo web site phù hợp nếu bạn dùng Easyengine, Centminmod…
2. Tạo file cấu hình Nginx cho cs-cart
Truy cập thư mục /var/www/=aznet.io=/
Tạo file cscart-nginx.conf
(cùng cấp với htdocs) với nội dung:
# Default encoding
charset utf-8;
############################################################################
# Compression
gzip on;
gzip_disable "msie6";
gzip_comp_level 6;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_proxied any;
gzip_types text/plain application/xml
application/javascript
text/css
text/js
text/xml
application/x-javascript
text/javascript
application/json
application/xml+rss;
############################################################################
# Other settings
client_max_body_size 100m;
client_body_buffer_size 128k;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
client_header_buffer_size 1k;
large_client_header_buffers 4 16k;
############################################################################
access_log /var/log/nginx/=aznet.io=_access.log combined;
error_log /var/log/nginx/=aznet.io=_error.log;
############################################################################
error_page 598 = @backend;
############################################################################
location @backend {
try_files $uri $uri/ /$2$3 /$3 /index.php =404;
# The path to the PHP-FPM daemon socket
fastcgi_pass unix:/var/run/php5-fpm.sock;
#
fastcgi_index index.php;
fastcgi_read_timeout 360;
# Including the contents of fastcgi_params.conf
################################################################################
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REDIRECT_STATUS 200;
################################################################################
}
############################################################################
# location / {
# try_files $uri $uri/ /index.php?$args;
# }
############################################################################
location ~ ^/(\w+/)?(\w+/)?api/ {
rewrite ^/(\w+/)?(\w+/)?api/(.*)$ /api.php?_d=$3&ajax_custom=1&$args last;
rewrite_log off;
}
############################################################################
location ~ ^/(\w+/)?(\w+/)?var/database/ {
return 404;
}
location ~ ^/(\w+/)?(\w+/)?var/backups/ {
return 404;
}
location ~ ^/(\w+/)?(\w+/)?var/restore/ {
return 404;
}
location ~ ^/(\w+/)?(\w+/)?var/themes_repository/ {
allow all;
location ~* \.(tpl|php.?)$ {
return 404;
}
}
location ~ ^/(\w+/)?(\w+/)?var/ {
return 404;
location ~* /(\w+/)?(\w+/)?(.+\.(js|css|png|jpe?g|gz|yml|xml))$ {
try_files $uri $uri/ /$2$3 /$3 /index.php?$args;
allow all;
access_log off;
expires 1M;
add_header Cache-Control public;
add_header Access-Control-Allow-Origin *;
}
}
############################################################################
location ~ ^/(\w+/)?(\w+/)?app/payments/ {
return 404;
location ~ \.php$ {
return 598;
}
}
location ~ ^/(\w+/)?(\w+/)?app/addons/rus_exim_1c/ {
return 404;
location ~ \.php$ {
return 598;
}
}
location ~ ^/(\w+/)?(\w+/)?app/ {
return 404;
}
############################################################################
location ~ ^/(favicon|apple-touch-icon|homescreen-|firefox-icon-|coast-icon-|mstile-).*\.(png|ico)$ {
access_log off;
try_files $uri =404;
expires max;
add_header Access-Control-Allow-Origin *;
add_header Cache-Control public;
}
location ~* /(\w+/)?(\w+/)?(.+\.(jpe?g|jpg|ico|gif|png|css|js|pdf|txt|tar|woff|svg|ttf|eot|csv|zip|xml|yml))$ {
access_log off;
try_files $uri $uri/ /$2$3 /$3 /index.php?$args;
expires max;
add_header Access-Control-Allow-Origin *;
add_header Cache-Control public;
}
############################################################################
location ~ ^/(\w+/)?(\w+/)?design/ {
allow all;
location ~* \.(tpl|php.?)$ {
return 404;
}
}
############################################################################
location ~ ^/(\w+/)?(\w+/)?images/ {
allow all;
location ~* \.(php.?)$ {
return 404;
}
}
############################################################################
location ~ ^/(\w+/)?(\w+/)?js/ {
allow all;
location ~* \.(php.?)$ {
return 404;
}
}
############################################################################
location ~ ^/(\w+/)?(\w+/)?init.php {
return 404;
}
location ~* \.(tpl.?)$ {
return 404;
}
location ~ /\.(ht|git) {
return 404;
}
location ~* \.php$ {
return 598 ;
}
Có thể thấy nội dung mã trên đã lược bớt (vô hiệu hóa) đi một số doạn so với bản gốc tại How To: Install CS-Cart on a Server with Nginx and *nix OS — CS-Cart 4.12.x documentation (bước 1.6). Lý do là mình đã tạo một file cấu hình tùy chỉnh, và giữ nguyên file cấu hình mặc định trong /etc/nginx/sites-available/
vì vậy sẽ có một số đoạn trùng nhau.
Để kiểm tra file cấu hình không có lỗi, chạy lệnh
nginx -t
Để hệ thống nhận file cấu hình, chạy:
nginx -s reload
3. Tải code lên VPS
Tải mã nguồn CS-CART lên thư mục htdocs
Nên nén lại mã nguồn với phần mở rộng .zip, sao cho khi bung nén tất cả các mục (app, design…) có folder gốc là htdocs (nén lại để tải lên cho nhanh)
Xem thêm: CS Cart Multi-Vendor Ultimate
Chuyển đến thư mục /htdocs
cd /var/www/=aznet.io=/htdocs/
Giải nén tệp vừa tải lên với lệnh
unzip file_name.zip
Khi quá trình giải nén hoàn tất, lần lượt chạy các lệnh sau:
chmod 644 config.local.php
chmod -R 755 design images var
find design -type f -print0 | xargs -0 chmod 644
find images -type f -print0 | xargs -0 chmod 644
find var -type f -print0 | xargs -0 chmod 644
chown -R www-data:www-data .
4. Tạo cơ sở dữ liệu
- Mở phpMyAdmin trong trình duyệt của bạn.
- Chuyển sang tab Cơ sở dữ liệu
- Nhập tên cơ sở dữ liệu của bạn.
- Nhấn Tạo
Lưu ý, nghi nhớ thông tin database để sử dụng cho phần cài đặt
5. Cài đặt CS-CART
Truy cập vào tên miền cửa hàng của bạn. Bạn sẽ thấy thông báo rằng CS-Cart chưa được cài đặt. Hãy sửa lỗi này bằng cách nhấp vào liên kết [install] .
Bây giờ hãy điền thông tin vào tất cả các trường được yêu cầu nhé
6. Giấy phép
Bước tiếp theo là chọn chế độ cấp phép của bạn. Bạn có 2 lựa chọn:
- Nhập số giấy phép của bạn để bật Chế độ đầy đủ , cung cấp cho bạn quyền truy cập không hạn chế vào tất cả các tính năng của CS-Cart, tức là hàng chục tiện ích bổ sung, nhiều ngôn ngữ và đơn vị tiền tệ, số lượng bộ lọc sản phẩm không giới hạn trên cửa hàng và hơn thế nữa. Bạn có thể mua giấy phép bất kỳ lúc nào.
Bạn có thể nhập số giấy phép CS-Cart hoặc CS-Cart Ultimate của mình vào trường này.
- Nếu bạn chưa có giấy phép, Cs-cart cung cấp bản dùng thử 30 ngày miễn phí với toàn quyền truy cập vào tất cả các tính năng của CS-Cart. Sau khi kết thúc thời gian dùng thử, bạn cần nhập số giấy phép để tiếp tục quản lý cửa hàng của mình.
Đối với các phiên bản CS-CART được download từ Aznet.io, hãy chọn chế độ
Full
và nhập bất kỳ đoạn ký tự nào bạn thích, ngoại trừXXXX-XXXX-XXXX-XXXX
Khi bạn chọn chế độ cấp phép, cửa hàng trực tuyến của bạn đã hoàn tất! Giờ đây, bạn có thể đi tới Cửa hàng để xem cửa hàng của mình hoặc vào Bảng quản trị để quản lý cửa hàng .