Cài đặt EC-CUBE trên ubuntu 20.04
Ec-cube là gì?
EC-CUBE là mã nguồn mở CMS do Nhật Bản phát triển để giải quyết ấn đề về thương mại điện tử.
Ở đây là trang chủ của nó EC-CUBE được viết bằng ngôn ngữ PHP, tài liệu về EC-CUBE còn ít và đa phần là tiếng Nhật.
Hiện tại mình đang dùng phiên bản EC-CUBE version 4.0.5 để cài đặt trên ubuntu 20.04
Dưới đây là cách cài đặt eccube.
1. Yêu cầu hệ thống
- Máy chủ web: nginx/1.14.0
- PHP: PHP 7.x
- Cơ sở dữ liệu: Mysql 5.7.x
2. Cài đặt LAMP
- Cài đặt PHP
sudo apt install php7.2-fpm php7.2-mbstring php7.2-xmlrpc php7.2-soap php7.2-gd php7.2-xml php7.2-cli php7.2-zip
- Cài đặt PHP-FPM
Tiếp theo, tạo một nhóm php-fpm mới cho
eccube
phần này sẽ được cấu hình chi tiết phần cấu hình LAMP.
Php-fpm pool chỉ là một quy trình Linux thông thường chạy dưới một số
user/group
nhất định và lắng nghe trên Linux.
Vì vậy, đối với trang web mới của chúng ta, hãy tạo một tệp mới
/etc/php5/fpm/pool.d/eccube.conf
.
[eccube]
user = eccube
group = www-data
listen = /var/run/php7.2-fpm-eccube.sock
listen.owner = eccube
listen.group = www-data
php_admin_value[disable_functions] = exec,passthru,shell_exec,system
php_admin_flag[allow_url_fopen] = off
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
chdir = /
- Cài đặt Nginx
sudo apt install nginx
Liệt kê các cấu hình ứng dụng mà ufw đang làm việc:
sudo ufw app list
Liệt kê đầu ra, có ba cấu hình có sẵn cho Nginx:
- Nginx Full: Cấu hình này mở cả cổng 80 (lưu lượng web bình thường, không được mã hóa) và cổng 443 (lưu lượng được mã hóa TLS / SSL)
- Nginx HTTP: Cấu hình này chỉ mở cổng 80 (lưu lượng web bình thường, không được mã hóa)
- Nginx HTTPS: Cấu hình này chỉ mở cổng 443 (lưu lượng được mã hóa TLS / SSL)
Bạn có thể kích hoạt tính năng
Nginx
trong ufw:
sudo ufw allow 'Nginx HTTP'
Bạn có thể xác minh sự thay đổi trong ufw:
sudo ufw status
- Cài đặt Mysql
sudo apt install mysql-server
Chạy tập lệnh bảo mật
#sudo
:
sudo mysql_secure_installation
Mở Mysql bằng terminal:
mysql -u root -p
Đăng nhập thành công vào mysql chứng tỏ chúng ta đã cài đặt xong.
- Cấu hình LAMP
Bắt đầu tạo một người dùng mới có tên là
eccube
và cấu hình:
sudo adduser eccube
Tiếp theo, các thư mục được tạo bởi người triển khai phải có quyền truy cập đọc-ghi thông qua máy chủ web Nginx. Thêm nhóm quyền
www-data
vào người dùngeccube
bằng lệnh sau:
sudo usermod -aG www-data eccube
Tiếp theo, bạn cần định cấu hình các quyền mặc định khi tạo tệp và thư mục mới với trình triển khai người dùng là 644 (tệp) và 755 (thư mục). Điều này giúp người triển khai có thể đọc và ghi tệp, trong khi các nhóm hoặc người dùng khác có thể đọc tệp đó. Thực hiện cấu hình này với lệnh umask = 022 như sau:
sudo chfn -o umask=022 eccube
Mã nguồn tải lên máy chủ sẽ được lưu tại
/var/www/html/app/ecbc
, vì vậy chúng ta cần thay đổi quyền sở hữu thư mục cho người dùng eccube và nhóm người dùngnginx
:
sudo chown eccube:www-data /var/www/html/app/ecbc
Người dùng
eccube
cần có quyền chỉnh sửa tệp và thư mục trong/var/www/html/app/ecbc
ngay cả khi được tạo sau này. Do đó, mọi tệp, thư mục và thư mục con được tạo trong thư mục đều thừa hưởng quyền của thư mục mẹ. Thực thi lệnh sau để đặt id nhóm cho thư mục:
sudo chmod g+s /var/www/html/app/ecbc
Tải về ecube tại trang chủ Ec-cube vào thư mục
/var/www/html/app/ecbc
.
Trên máy chủ đăng usereccube
ta chuyển ngườiroot
và tạo tệp cấu hình mới/home/ubuntu/etc/nginx/conf.d/eccube.conf
:
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html/app/ecbc;
index index.php;
server_name _;
location / {
#omdeny all;
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm-eccube.sock;
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
}
}
3. Run Ec-Cube
Truy cập URL sau
http://your_ip_address
từ trình duyệt của bạn.
Trường hợp gặp lỗi "intl extension not enabled". Mở terminal chạy
apt install php7.2-intl
.
"Nhấn tiếp"
Nhập thông tin cửa hàng cơ bản. Sau khi nhập đầy đủ thông tin, hãy nhấp vào "Tiếp theo".
Nhập thông tin cơ sở dữ liệu. Sau khi nhập đầy đủ thông tin, hãy nhấp vào "Tiếp theo".
Đăng ký dữ liệu ban đầu trong cơ sở dữ liệu. "Nhấn tiếp"
Xin chúc mừng!
Cài đặt hoàn tất khi màn hình này hiển thị.
4. Một số lưu ý khi cài đặt:
- MN nhớ config trong file .env:
- APP_ENV=dev: chuyển sang môi trường dev thì mới chạy được lệnh bin/console server:run
- APP_DEBUG=1: Bật chế độ debug, khi app có lỗi thì nó sẽ thông báo ra màn hình.
- Mặc định của eccube là sqlite, nên để chuyển sang hệ quản thị cơ sở dữ liệu tùy thích thì mình phải cấu hình thêm.