Cách cài đặt Shopware 6 với NGINX và Let's Encrypt trên CentOS 8

theanh

Administrator
Nhân viên
Shopware là một nền tảng mã nguồn mở và miễn phí giúp bạn khởi động trang web thương mại điện tử của riêng mình để thúc đẩy doanh nghiệp trực tuyến của bạn. Nó cung cấp rất nhiều công cụ hữu ích giúp bạn xây dựng và tùy chỉnh một cửa hàng trực tuyến hoàn toàn đáp ứng. Nó rất giống với Magento. So với Magento, Shopware là một ứng dụng rất mạnh mẽ, dễ sử dụng và linh hoạt. Nó giúp bạn tạo và quản lý nội dung và sản phẩm dễ dàng từ bất kỳ thiết bị nào với giao diện người dùng hiện đại.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt Shopware với Nginx và Let's Encrypt SSL trên CentOS 8.

Điều kiện tiên quyết​

  • Máy chủ chạy CentOS 8.
  • Tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
  • Mật khẩu gốc được cấu hình trên máy chủ của bạn.

Cài đặt LEMP Server​

Shopware chạy trên máy chủ Web và được xây dựng trên PHP với các thành phần Symfony và Zend, đồng thời sử dụng MySQL hoặc MariaDB làm cơ sở dữ liệu phụ trợ. Vì vậy, bạn sẽ cần cài đặt Nginx, MariaDB, PHP và các tiện ích mở rộng khác vào máy chủ của mình. Bạn có thể cài đặt tất cả chúng bằng lệnh sau:
Mã:
dnf install nginx mariadb-server php php-cli php-intl php-fpm php-common php-mysqli php-curl php-json php-zip php-gd php-xml php-mbstring php-opcache unzip -y
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 khi khởi động lại hệ thống bằng lệnh sau:
Mã:
systemctl start mariadb
systemctl enable mariadb
systemctl start nginx
systemctl start php-fpm
systemctl enable nginx
systemctl enable php-fpm
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cấu hình PHP-FPM​

Theo mặc định, PHP-FPM được cấu hình để chạy dưới dạng người dùng và nhóm apache. Vì vậy, bạn sẽ cần cấu hình để chạy dưới dạng người dùng và nhóm Nginx. Bạn có thể thực hiện bằng cách chỉnh sửa tệp /etc/php-fpm.d/www.conf:
Mã:
nano /etc/php-fpm.d/www.conf
Thay đổi các dòng sau:
Mã:
user = nginxgroup = nginx
Lưu và đóng tệp sau đó tạo thư mục phiên và thiết lập quyền sở hữu phù hợp bằng lệnh sau:
Mã:
mkdir -p /var/lib/php/session 
chown -R nginx:nginx /var/lib/php/session
Tiếp theo, chỉnh sửa tệp php.ini và điều chỉnh một số cài đặt được đề xuất:
Mã:
nano /etc/php.ini
Thay đổi các dòng sau:
Mã:
memory_limit = 512Mupload_max_filesize = 20Mdate.timezone = Asia/Kolkata
Lưu và đóng tệp sau đó khởi động lại dịch vụ PHP-FPM để áp dụng các thay đổi:
Mã:
systemctl restart php-fpm

Tạo Cơ sở dữ liệu cho Shopware​

Tiếp theo, bạn sẽ cần tạo cơ sở dữ liệu và người dùng cho Shopware. Trước tiên, hãy kết nối với MariaDB bằng lệnh sau:
Mã:
mysql
Sau khi kết nối, hãy tạo cơ sở dữ liệu và người dùng bằng lệnh sau:
Mã:
MariaDB [(none)]> CREATE DATABASE shopware;
MariaDB [(none)]> GRANT ALL ON shopware.* TO 'shopware' IDENTIFIED BY 'password';
Tiếp theo, xóa các đặc quyền và thoát khỏi MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Tải xuống Shopware​

Tiếp theo, bạn sẽ cần tải xuống phiên bản Shopware mới nhất cho trang web chính thức của nó. Trước tiên, tạo một thư mục cho Shopware bên trong thư mục gốc Nginx:
Mã:
mkdir /var/www/html/shopware
Tiếp theo, tải xuống Shopware bằng lệnh sau:
Mã:
wget https://www.shopware.com/en/Download/redirect/version/sw6/file/install_v6.3.5.0_ba08dbfc07784b5cefe7837f2abbda69dbf5b8b7.zip -O shopware.zip
Sau khi tải xuống hoàn tất, giải nén tệp đã tải xuống vào thư mục shopware:
Mã:
unzip shopware.zip -d /var/www/html/shopware
Tiếp theo, thiết lập quyền và quyền sở hữu phù hợp bằng lệnh sau:
Mã:
chown -R nginx:nginx /var/www/html/shopware
chmod -R 775 /var/www/html/shopware
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Cấu hình Nginx cho Shopware​

Tiếp theo, tạo tệp cấu hình máy chủ ảo Nginx cho Shopware bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/shopware.conf
Thêm các dòng sau:
Mã:
server { listen 80; # Xử lý / đến index.php index index.php; # Tên máy chủ của chúng tôi server_name shopware.example.com; # Nơi chứa mã root /var/www/html/shopware/public; # Cần thiết để cài đặt / cập nhật Shopware location /recovery/install { index index.php; try_files $uri /recovery/install/index.php$is_args$args; } location /recovery/update/ { if (!-e $request_filename){ rewrite . /recovery/update/index.php last; } } # Chuyển tiếp bất kỳ tệp nào không tìm thấy đến index.php. Cũng cho phép có các url đẹp như /homemade-products/ location / { try_files $uri /index.php$is_args$args; } # Để php-fpm xử lý các tệp .php location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; bao gồm fastcgi.conf; fastcgi_param HTTP_PROXY ""; fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; fastcgi_read_timeout 300 giây; client_body_buffer_size 128k; fastcgi_pass unix:/run/php-fpm/www.sock; http2_push_preload on; }}
Lưu và đóng tệp, sau đó xác minh Nginx xem có lỗi cú pháp nào không bằng lệnh sau:
Mã:
nginx -t
Bạn sẽ nhận được kết quả sau:
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: thử nghiệm tệp cấu hình /etc/nginx/nginx.conf thành công
Tiếp theo, khởi động lại dịch vụ Nginx để áp dụng các thay đổi:
Mã:
systemctl restart nginx
Bạn cũng có thể xác minh trạng thái Nginx bằng lệnh sau:
Mã:
systemctl status nginx
Bạn sẽ nhận được kết quả sau:
Mã:
? nginx.service - Máy chủ proxy ngược và HTTP nginx Đã tải: đã tải (/usr/lib/systemd/system/nginx.service; đã tắt; cài đặt trước của nhà cung cấp: đã tắt) Drop-In: /usr/lib/systemd/system/nginx.service.d ??php-fpm.conf Đang hoạt động: đang hoạt động (đang chạy) từ Thứ Ba 2021-02-02 00:40:04 EST; 19 giây trước Tiến trình: 76059 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Tiến trình: 76057 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Tiến trình: 76054 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) PID chính: 76060 (nginx) Nhiệm vụ: 3 (giới hạn: 12523) Bộ nhớ: 5,5M CGroup: /system.slice/nginx.service ??76060 nginx: tiến trình chính /usr/sbin/nginx ??76061 nginx: tiến trình công nhân ??76062 nginx: tiến trình công nhân02/02 00:40:04 centos8 systemd[1]: Đã dừng máy chủ proxy ngược và HTTP nginx.02/02 00:40:04 centos8 systemd[1]: Khởi động máy chủ proxy ngược và HTTP nginx...02/02 00:40:04 centos8 nginx[76057]: nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là ok02/02 00:40:04 centos8 nginx[76057]: nginx: tệp cấu hình /etc/nginx/nginx.conf đã kiểm tra thành công02/02 00:40:04 centos8 systemd[1]: Khởi động máy chủ proxy ngược và HTTP 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 ngữ cảnh SELinux cho Shopware. Bạn có thể cấu hình bằng lệnh sau:
Mã:
setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/shopware
Tiếp theo, cho phép cổng 80 và 443 đi qua tường lửa bằng lệnh sau:
Mã:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

Truy cập Giao diện web Shopware​

Bây giờ, hãy mở trình duyệt web của bạn và nhập URL .

Chọn ngôn ngữ của bạn và nhấp vào nút Tiếp theo. Đảm bảo tất cả các yêu cầu đã được đáp ứng, sau đó nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:



Đồng ý với GTC và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:



Cung cấp cơ sở dữ liệu, tên người dùng, mật khẩu của bạn và nhấp vào nút Bắt đầu cài đặt. Sau khi quá trình cài đặt hoàn tất, bạn sẽ thấy trang sau:



Nhấp vào trang Tiếp theo. Bạn sẽ được yêu cầu cung cấp tên Cửa hàng, địa chỉ email, tiền tệ, quốc gia, tên người dùng quản trị, mật khẩu và nhấp vào nút Tiếp theo. Bạn sẽ được chuyển hướng đến bảng điều khiển Shopware:





Cung cấp tất cả thông tin và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:



Cài đặt plugin ngôn ngữ mong muốn của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:



Cài đặt dữ liệu demo hoặc bỏ qua mục này và nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:



Nhấp vào Cấu hình sau. Bạn sẽ thấy trang sau:



Nhấp vào nút Bỏ qua. Bạn sẽ thấy trang sau:



Nhấp vào nút Tiếp theo. Bạn sẽ thấy trang sau:



Nhấp vào nút Bỏ qua. Bạn sẽ thấy trang sau:



Nhấp vào nút Kết thúc. Bạn sẽ thấy trang chào mừng của Shopware:


Bảo mật Shopware với Let's Encrypt SSL​

Tiếp theo, bạn sẽ cần cài đặt tiện ích Certbot trong hệ thống của mình để tải xuống và cài đặt Let's Encrypt SSL cho miền Let's Chat.

Bạn có thể cài đặt ứng dụng khách Certbot bằng 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
Tiếp theo, hãy lấy và cài đặt chứng chỉ SSL cho miền lets của bạn bằng lệnh sau:
Mã:
certbot-auto --nginx -d shopware.example.com
Lệnh trên sẽ cài đặt tất cả các phụ thuộc cần thiết trên máy chủ của bạn trước. Sau khi cài đặt, bạn sẽ được yêu cầu cung cấp địa chỉ email và chấp nhận điều khoản dịch vụ như hiển thị bên dưới:
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: A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có sẵn lòng chia sẻ địa chỉ email của mình với Electronic Frontier Foundation, đối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuận phát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôimã hóa web, tin tức EFF, các chiến dịch và các cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)o: CNhận chứng chỉ mớiThực hiện các thử thách sau:Thử thách http-01 cho shopware.example.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/shopware.conf
Tiếp theo, 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:
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] rồi [enter] (nhấn 'c' để hủy): 2
Nhập 2 và nhấn Enter để tiếp tục. Sau khi quá trình cài đặt hoàn tất, bạn sẽ thấy kết quả sau:
Mã:
Đang chuyển hướng tất cả lưu lượng truy cập trên cổng 80 sang ssl trong /etc/nginx/conf.d/shopware.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://shopware.example.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=shopware.example.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/shopware.example.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/shopware.example.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 2021-04-2. Để 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
Bây giờ bạn có thể truy cập Shopware một cách an toàn bằng URL https://shopware.example.com.

Kết luận​

Xin chúc mừng! bạn đã cài đặt và định cấu hình Shopware thành công với Nginx và Let's Encrypt SSL trên CentOS 8. Bây giờ bạn có thể dễ dàng lưu trữ cửa hàng trực tuyến của riêng mình với Shopware. Hãy thoải mái hỏi tôi nếu bạn có bất kỳ câu hỏi nào.
 
Back
Bên trên