Magento là một trong những nền tảng thương mại điện tử mã nguồn mở phổ biến nhất cho phép bạn thiết lập các trang web thương mại điện tử và cửa hàng trực tuyến trong vài phút. Nó được viết bằng PHP, dựa trên Zend Framework và sử dụng mô hình cơ sở dữ liệu Entity Attribute Value (EAV) để lưu trữ dữ liệu. Nó đi kèm với một giao diện đơn giản và thân thiện với người dùng cho phép bạn tùy chỉnh cửa hàng trực tuyến của mình và bán sản phẩm và dịch vụ của mình một cách dễ dàng.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt nền tảng thương mại điện tử Magento trên CentOS 8 với SSL miễn phí Let's Encrypt.
Sau khi tất cả các gói được cài đặt, hãy khởi động dịch vụ Nginx, MariaDB và PHP-FPM và cho phép chúng khởi động sau khi khởi động lại hệ thống bằng lệnh sau:
Tiếp theo, bạn sẽ cần chỉnh sửa tệp php.ini và điều chỉnh một số cài đặt:
Thay đổi các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất.
Trả lời tất cả các câu hỏi như hiển thị bên dưới:
Sau khi hoàn tất, hãy đăng nhập vào shell MariaDB bằng lệnh sau:
Cung cấp mật khẩu root của bạn khi được nhắc, sau đó tạo cơ sở dữ liệu và người dùng cho Magento như hiển thị bên dưới:
Tiếp theo, xóa các đặc quyền và thoát khỏi shell MariaDB bằng lệnh sau:
Thêm các dòng sau:
Lưu và đóng tệp sau đó khởi động lại dịch vụ PHP-FPM để triển khai các thay đổi:
Sau khi tải xuống, hãy giải nén tệp đã tải xuống như hiển thị bên dưới:
Tiếp theo, di chuyển thư mục đã giải nén đến magento2 như hiển thị bên dưới:
Tiếp theo, bạn sẽ cần cài đặt Composer để cài đặt các phụ thuộc PHP cho Magento.
Bạn có thể cài đặt Composer bằng lệnh sau:
Tiếp theo, hãy thay đổi thư mục thành magento2 và cài đặt tất cả các phụ thuộc Magento bằng lệnh sau:
Tiếp theo, bạn sẽ cần tạo crontab Magento để lên lịch các tác vụ. Bạn có thể tạo nó bằng lệnh sau:
Bạn có thể xác minh crontab bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, cấp quyền thích hợp cho thư mục magento2:
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại Nginx và dịch vụ PHP-FPM để triển khai các thay đổi:
Bạn có thể cấu hình SELinux bằng lệnh sau:
Tiếp theo, bạn sẽ cần tạo một quy tắc tường lửa để cho phép dịch vụ HTTP và HTTPS từ các mạng bên ngoài. Bạn có thể cho phép bằng lệnh sau:
Để thực hiện, bạn sẽ cần tải xuống máy khách certbot trên máy chủ của mình. Bạn có thể tải xuống và thiết lập quyền chính xác bằng cách chạy lệnh sau:
Bây giờ, hãy chạy lệnh sau để lấy và cài đặt chứng chỉ SSL cho trang web Magento của bạn.
Lệnh trên trước tiên sẽ cài đặt tất cả các phụ thuộc bắt buộc như được hiển thị bên dưới:
Sau khi tất cả các phụ thuộc được cài đặt, bạn sẽ được yêu cầu cung cấp địa chỉ email và đồng ý với điều khoản dịch vụ như được hiển thị bên dưới:
Tiếp theo, bạn sẽ cần chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không như hiển thị bên dưới:
Nhập 2 và nhấn Enter để cài đặt chứng chỉ SSL Let's Encrypt cho tên miền của bạn như hiển thị bên dưới:
Mở trình duyệt web của bạn và nhập URL https://magento.linuxbuz.com. Bạn sẽ được chuyển hướng đến trang Chào mừng Magento:
Nhấp vào nút Đồng ý và Thiết lập Magento. Bạn sẽ thấy trình hướng dẫn kiểm tra mức độ sẵn sàng của Magento:
Bây giờ, hãy nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Cung cấp thông tin chi tiết về cơ sở dữ liệu của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy cung cấp URL cửa hàng Magento và quản trị viên của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Chọn múi giờ, tiền tệ, ngôn ngữ mong muốn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy cung cấp tên người dùng, mật khẩu quản trị viên Magento của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút Cài đặt Ngay để bắt đầu cài đặt Magento. Sau khi quá trình cài đặt hoàn tất thành công. Bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút Địa chỉ cửa hàng của bạn. Bạn sẽ thấy cửa hàng Magento của mình ở trang sau:
Để truy cập vào giao diện Magento Admin, hãy nhập URL https://magento.linuxbuz.com/admin_1teqss trên trình duyệt web của bạn. Bạn sẽ được chuyển hướng đến trang Magento Login:
Cung cấp tên người dùng, mật khẩu quản trị Magento của bạn và nhấp vào nút Đăng nhập vào. Bạn sẽ thấy giao diện quản trị Magento của mình ở trang sau:
Vậy là xong. Magento của bạn hiện đã được bảo mật bằng SSL miễn phí Let's Encrypt.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt nền tảng thương mại điện tử Magento trên CentOS 8 với SSL miễn phí Let's Encrypt.
Yêu cầu
- Một máy chủ chạy CentOS 8 với 2 GB RAM.
- Một tên miền hợp lệ được trỏ đến IP máy chủ của bạn.
- Một mật khẩu gốc được cấu hình trên máy chủ.
Cài đặt LEMP Server
Trước tiên, hãy cài đặt máy chủ web Nginx, máy chủ cơ sở dữ liệu MariaDB, PHP và các thư viện PHP cần thiết khác bằng cách chạy lệnh sau:
Mã:
dnf install nginx mariadb-server php php-cli php-mysqlnd php-opcache php-xml php-gd php-soap php-bcmath php-intl php-mbstring php-json php-iconv php-fpm php-zip unzip git -y
Mã:
systemctl start nginx
systemctl start mariadb
systemctl start php-fpm
systemctl enable nginx
systemctl enable mariadb
systemctl enable php-fpm
Mã:
nano /etc/php.ini
Mã:
memory_limit =512Mupload_max_filesize = 200Mzlib.output_compression = Onmax_execution_time = 300date.timezone = Asia/Kolkata
Cấu hình Cơ sở dữ liệu
Theo mặc định, MariaDB không được bảo mật nên trước tiên bạn cần bảo mật nó. Chạy tập lệnh sau để bảo mật MariaDB:
Mã:
mysql_secure_installation
Mã:
Nhập mật khẩu hiện tại cho root (nhập nếu không):Đặt mật khẩu root? [Y/n] YMật khẩu mới:Nhập lại mật khẩu mới:Xóa người dùng ẩn danh? [Y/n] YKhông cho phép root đăng nhập từ xa? [Y/n] YXóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? [Y/n] YTải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Mã:
mysql -u root -p
Mã:
MariaDB [(none)]> CREATE DATABASE magentodb;
MariaDB [(none)]> GRANT ALL ON magentodb.* TO magento@localhost IDENTIFIED BY 'password';
Mã:
MariaDB [(none)]> xóa các đặc quyền;
MariaDB [(none)]> exit;
Cấu hình PHP-FPM cho Magento
Tiếp theo, bạn sẽ cần cấu hình nhóm PHP-FPM cho phiên bản Magento của mình. Bạn có thể cấu hình bằng cách tạo tệp sau:
Mã:
nano /etc/php-fpm.d/magento.conf
Mã:
[magento]user = nginxgroup = nginxlisten.owner = nginxlisten.group = nginxlisten = /run/php-fpm/magento.sockpm = ondemandpm.max_children = 50pm.process_idle_timeout = 10 giâypm.max_requests = 500chdir = /
Mã:
systemctl restart php-fpm
Tải xuống Magento
Đầu tiên, hãy tải xuống phiên bản Magento mới nhất từ kho lưu trữ Git bằng lệnh sau:
Mã:
cd /var/www/html
wget https://github.com/magento/magento2/archive/2.3.zip
Mã:
unzip 2.3.zip
Mã:
mv magento2-2.3 magento2
Bạn có thể cài đặt Composer bằng lệnh sau:
Mã:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Mã:
cd /var/www/html/magento2
composer update
composer install
Mã:
./bin/magento cron:install
Mã:
crontab -l
Mã:
#~ MAGENTO START f73db5f5dcf223372d4c9fab56bef0c1730eece898fad5cbee0c313b46b0dd1f* * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log* * * * * /usr/bin/php /var/www/html/magento2/update/cron.php >> /var/www/html/magento2/var/log/update.cron.log* * * * * /usr/bin/php /var/www/html/magento2/bin/magento thiết lập:cron:run >> /var/www/html/magento2/var/log/setup.cron.log#~ MAGENTO END f73db5f5dcf223372d4c9fab56bef0c1730eece898fad5cbee0c313b46b0dd1f
Mã:
chown -R nginx:nginx /var/www/html/magento2
chmod -R 755 /var/www/html/magento2
Cấu hình Nginx cho Magento
Tiếp theo, bạn sẽ cần tạo tệp máy chủ ảo Nginx cho Magento. Bạn có thể tạo nó bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/magento.conf
Mã:
upstream fastcgi_backend { server unix:/run/php-fpm/magento.sock;}server { listen 80; server_name magento.linuxbuz.com; set $MAGE_ROOT /var/www/html/magento2; set $MAGE_MODE developer; access_log /var/log/nginx/magento-access.log; error_log /var/log/nginx/magento-error.log; include /var/www/html/magento2/nginx.conf.sample;}
Mã:
systemctl restart php-fpm
systemctl restart nginx
Cấu hình SELinux và Tường lửa
Theo mặc định, SELinux được bật trong CentOS 8. Vì vậy, bạn sẽ cần cấu hình SELinux để Magento hoạt động chính xác.Bạn có thể cấu hình SELinux bằng lệnh sau:
Mã:
semanage permissive -a httpd_t
Mã:
firewall-cmd --permanent --add-service=http
Mã:
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Bảo mật Magento bằng Let's Encrypt SSL
Magento hiện đã được cài đặt và cấu hình. Đã đến lúc bảo mật bằng Let's Encrypt SSL miễn phí.Để thực hiện, bạn sẽ cần tải xuống máy khách certbot trên máy chủ của mình. Bạn có thể tải xuống và thiết lập quyền chính xác bằng cách chạy lệnh sau:
Mã:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
Mã:
certbot-auto --nginx -d magento.linuxbuz.com
Mã:
Đã cài đặt: gcc-8.2.1-3.5.el8.x86_64 mod_ssl-1:2.4.37-12.module_el8.0.0+185+5908b0db.x86_64 python3-virtualenv-15.1.0-18.module_el8.0.0+33+0a10c0e1.noarch python36-devel-3.6.8-2.module_el8.0.0+33+0a10c0e1.x86_64 redhat-rpm-config-116-1.el8.0.1.noarch augeas-libs-1.10.1-8.el8.x86_64 libffi-devel-3.1-18.el8.x86_64 openssl-devel-1:1.1.1-8.el8.x86_64 annobin-8.64-1.el8.x86_64 cpp-8.2.1-3.5.el8.x86_64 dwz-0.12-9.el8.x86_64 efi-srpm-macros-3-2.el8.noarch ghc-srpm-macros-1.4.2-7.el8.noarch go-srpm-macros-2-16.el8.noarch isl-0.16.1-6.el8.x86_64 libmpc-1.0.2-9.el8.x86_64 ocaml-srpm-macros-5-4.el8.noarch openblas-srpm-macros-2-2.el8.noarch Perl-srpm-macros-1-25.el8.noarch nền tảng-python-devel-3.6.8-2.el8_0.0.1.x86_64 python-rpm-macros-3-37.el8.noarch python-srpm-macros-3-37.el8.noarch python3-rpm-generators-5-4.el8.noarch python3-rpm-macros-3-37.el8.noarch qt5-srpm-macros-5.11.1-2.el8.noarch Rust-srpm-macros-5-2.el8.noarch glibc-devel-2.28-42.el8.1.x86_64 glibc-headers-2.28-42.el8.1.x86_64 kernel-headers-4.18.0-80.11.2.el8_0.x86_64 keyutils-libs-devel-1.5.10-6.el8.x86_64 krb5-devel-1.16.1-22.el8.x86_64 libcom_err-devel-1.44.3-2.el8.x86_64 libkadm5-1.16.1-22.el8.x86_64 libselinux-devel-2.8-6.el8.x86_64 libsepol-devel-2.8-2.el8.x86_64 libverto-devel-0.3.0-5.el8.x86_64 libxcrypt-devel-4.1.1-4.el8.x86_64 pcre2-devel-10.32-1.el8.x86_64 pcre2-utf16-10.32-1.el8.x86_64 pcre2-utf32-10.32-1.el8.x86_64 zlib-devel-1.2.11-10.el8.x86_64Hoàn tất!Đang tạo môi trường ảo...Đang cài đặt các gói Python...Cài đặt thành công.
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator nginx, Installer nginxNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' đểhủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký với máy chủ ACME tạihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel: ALưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator nginx, Installer nginxNhận chứng chỉ mớiThực hiện các thử thách sau:Thử thách http-01 cho magento.linuxbuz.comĐang chờ xác minh...Dọn dẹp các thử tháchTriển khai chứng chỉ cho VirtualHost /etc/nginx/conf.d/magento.conf
Mã:
Vui lòng chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không, xóa quyền truy cập HTTP.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: Không chuyển hướng - Không thực hiện thêm bất kỳ thay đổi nào đối với cấu hình máy chủ web.2: Chuyển hướng - Chuyển hướng tất cả các yêu cầu đến quyền truy cập HTTPS an toàn. Chọn tùy chọn này chocác trang web mới hoặc nếu bạn tin tưởng rằng trang web của mình hoạt động trên HTTPS. Bạn có thể hoàn tácthay đổi này bằng cách chỉnh sửa cấu hình máy chủ web của mình.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Chọn số thích hợp [1-2] sau đó [enter] (nhấn 'c' để hủy): 2
Mã:
Chuyển hướng tất cả lưu lượng trên cổng 80 sang ssl trong /etc/nginx/conf.d/magento.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://magento.linuxbuz.comBạn nên kiểm tra cấu hình của mình tại:https://www.ssllabs.com/ssltest/analyze.html?d=magento.linuxbuz.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/magento.linuxbuz.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/magento.linuxbuz.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 23-03-2020. Để có phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot-auto với tùy chọn "certonly". Để gia hạn không tương tác *tất cả* chứng chỉ của bạn, hãy chạy "certbot-auto renew" - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le
Truy cập Magento
Magento hiện đã được cài đặt và định cấu hình. Đã đến lúc truy cập trình hướng dẫn cài đặt Magento.Mở trình duyệt web của bạn và nhập URL https://magento.linuxbuz.com. Bạn sẽ được chuyển hướng đến trang Chào mừng Magento:
Nhấp vào nút Đồng ý và Thiết lập Magento. Bạn sẽ thấy trình hướng dẫn kiểm tra mức độ sẵn sàng của Magento:
Bây giờ, hãy nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Cung cấp thông tin chi tiết về cơ sở dữ liệu của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy cung cấp URL cửa hàng Magento và quản trị viên của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Chọn múi giờ, tiền tệ, ngôn ngữ mong muốn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy cung cấp tên người dùng, mật khẩu quản trị viên Magento của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút Cài đặt Ngay để bắt đầu cài đặt Magento. Sau khi quá trình cài đặt hoàn tất thành công. Bạn sẽ thấy trang sau:
Bây giờ, hãy nhấp vào nút Địa chỉ cửa hàng của bạn. Bạn sẽ thấy cửa hàng Magento của mình ở trang sau:
Để truy cập vào giao diện Magento Admin, hãy nhập URL https://magento.linuxbuz.com/admin_1teqss trên trình duyệt web của bạn. Bạn sẽ được chuyển hướng đến trang Magento Login:
Cung cấp tên người dùng, mật khẩu quản trị Magento của bạn và nhấp vào nút Đăng nhập vào. Bạn sẽ thấy giao diện quản trị Magento của mình ở trang sau:
Vậy là xong. Magento của bạn hiện đã được bảo mật bằng SSL miễn phí Let's Encrypt.