Cách cài đặt OpenCart với Nginx và Let's Encrypt trên Debian 10

theanh

Administrator
Nhân viên
Opencart là giải pháp giỏ hàng mã nguồn mở phổ biến giúp bạn lưu trữ trang web thương mại điện tử đầy đủ chức năng của riêng mình. Opencart cung cấp giao diện đơn giản và thân thiện với người dùng để bán sản phẩm trực tuyến, chẳng hạn như Amazon và Flipcart. Nó được thiết kế dành riêng cho các doanh nghiệp vừa và nhỏ và có tất cả các tính năng thương mại điện tử tiêu chuẩn cần thiết cho các cửa hàng trực tuyến. Nó cung cấp một bộ tính năng phong phú bao gồm đa tiền tệ, ngôn ngữ, danh mục không giới hạn, sản phẩm, đánh giá sản phẩm, nhiều cửa hàng và nhiều tính năng khác.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách cài đặt OpenCart với Nginx trên Debian 10 và bảo mật bằng Let's Encrypt SSL.

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

  • Máy chủ chạy Debian 10.
  • Mật khẩu gốc được cấu hình trên máy chủ của bạn.

Bắt đầu​

Trước tiên, hãy cập nhật hệ thống của bạn lên phiên bản mới nhất bằng lệnh sau:
Mã:
apt-get update -y
 apt-get upgrade -y
Sau khi máy chủ của bạn được cập nhật, hãy khởi động lại để áp dụng các thay đổi.

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 tiện ích mở rộng PHP cần thiết khác bằng cách chạy lệnh sau:
Mã:
apt-get install nginx mariadb-server php-common php-cli php-fpm php-opcache php-gd php-mysql php-curl php-intl php-xsl php-mbstring php-zip php-bcmath php-soap unzip git -y
Sau khi tất cả các gói được cài đặt, hãy chỉnh sửa tệp php.ini và thực hiện một số thay đổi:
Mã:
nano /etc/php/7.3/fpm/php.ini
Thay đổi các dòng sau:
Mã:
memory_limit = 256Mupload_max_filesize = 100Mopcache.save_comments=1max_execution_time = 300date.timezone = Asia/Kolkata
Lưu và đóng tệp khi bạn hoàn tất.

Cấu hình Cơ sở dữ liệu MariaDB​

Tiếp theo, bạn sẽ cần đặt mật khẩu gốc MariaDB vì mật khẩu này không được đặt trong Debian 10.

Để thực hiện, hãy đăng nhập vào shell MariaDB bằng lệnh sau:
Mã:
mysql
Sau khi đăng nhập, hãy đặt mật khẩu gốc MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> ĐẶT MẬT KHẨU CHO 'root'@'localhost' = MẬT KHẨU("yournewrootpassword");
Tiếp theo, đặt plugin xác thực MariaDB thành mysql_native_password bằng lệnh sau:
Mã:
MariaDB [(none)]> ĐẶT TOÀN CẦU innodb_fast_shutdown = 0;
 MariaDB [(none)]> CẬP NHẬT mysql.user ĐẶT plugin = 'mysql_native_password' WHERE User = 'root';
Tiếp theo, xóa các đặc quyền và thoát khỏi shell MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> XÓA CÁC ĐẶC QUYỀN;
 MariaDB [(none)]> EXIT;
Tiếp theo, đăng nhập vào MariaDB với người dùng root:
Mã:
mysql -u root -p
Cung cấp mật khẩu root của bạn và tạo cơ sở dữ liệu và người dùng cho OpenCart bằng lệnh sau:
Mã:
MariaDB [(none)]> CREATE DATABASE opencartdb;
 MariaDB [(none)]> GRANT ALL ON opencartdb.* TO 'opencart'@'localhost' IDENTIFIED BY 'password';
Tiếp theo, xóa các đặc quyền và thoát khỏi shell MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]> FLUSH PRIVILEGES;
 MariaDB [(none)]> EXIT;
Sau khi MariaDB được cấu hình, bạn có thể tiến hành bước tiếp theo.

Tải xuống OpenCart​

Bạn có thể tải xuống phiên bản OpenCart mới nhất từ kho lưu trữ Git bằng lệnh sau:
Mã:
wget https://github.com/opencart/opencart/releases/download/3.0.3.2/opencart-3.0.3.2.zip
Sau khi tải xuống OpenCart, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Mã:
unzip opencart-3.0.3.2.zip
Tiếp theo, di chuyển thư mục tải lên đến thư mục gốc web Nginx bằng lệnh sau:
Mã:
mv upload /var/www/html/opencart
Tiếp theo, hãy thay đổi thư mục thành opencart và đổi tên tệp config-dist.php:
Mã:
cd /var/www/html/opencart/
 mv config-dist.php config.php
 mv admin/config-dist.php admin/config.php
Tiếp theo, cấp quyền thích hợp cho thư mục opencart bằng lệnh sau:
Mã:
chown -R www-data:www-data /var/www/html/opencart/
 chmod -R 775 /var/www/html/opencart/
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 OpenCart​

Tiếp theo, bạn sẽ cần tạo tệp cấu hình máy chủ ảo Nginx để phục vụ OpenCart. Bạn có thể tạo nó bằng lệnh sau:
Mã:
nano /etc/nginx/sites-available/opencart.conf
Thêm nội dung sau:
Mã:
server { lắng nghe 80; server_name opencart.linuxbuz.com; root /var/www/html/opencart; index index.php; access_log /var/log/nginx/opencart_access.log; error_log /var/log/nginx/opencart_error.log; location = /favicon.ico { log_not_found tắt; access_log tắt; } location = /robots.txt { cho phép tất cả; log_not_found tắt; access_log tắt; } location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.3-fpm.sock; } location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ { hết hạn tối đa; log_not_found tắt; }}
Lưu và đóng tệp, sau đó kiểm tra 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: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Tiếp theo, bật tệp máy chủ ảo Nginx bằng lệnh sau:
Mã:
ln -s /etc/nginx/sites-available/opencart.conf /etc/nginx/sites-enabled/
Tiếp theo, khởi động lại dịch vụ Nginx và PHP-FPM để áp dụng các thay đổi:
Mã:
systemctl restart nginx
 systemctl restart php7.3-fpm
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.

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

Tiếp theo, bạn sẽ cần cài đặt một máy khách Certbot để cài đặt và thiết lập Let's Encrypt cho trang web của mình.

Theo mặc định, Certbot không có trong kho lưu trữ mặc định của Debian 10. Vì vậy, bạn sẽ cần thêm kho lưu trữ Certbot vào hệ thống của mình.

Bạn có thể thêm nó bằng lệnh sau:
Mã:
echo "deb http://ftp.debian.org/debian buster-backports main" >> /etc/apt/sources.list
Tiếp theo, hãy cập nhật kho lưu trữ và cài đặt máy khách Certbot cho Nginx bằng lệnh sau:
Mã:
apt-get update -y
 apt-get install python3-certbot-nginx -t buster-backports
Sau khi cài đặt, hãy chạy lệnh sau để tải xuống Let's Encrypt SSL và cấu hình Nginx để sử dụng SSL này:
Mã:
certbot --nginx -d opencart.linuxbuz.com
Bạn sẽ được nhắc chấp nhận điều khoản dịch vụ và cung cấp địa chỉ email hợp lệ của mình 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 apache, Installer apacheNhậ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)ó: CNhận chứng chỉ mớiThực hiện các thử thách sau:Thử thách http-01 cho opencart.linuxbuz.comĐang chờ xác minh...Dọn dẹp các thử tháchTạo vhost SSL tại /etc/nginx/sites-available/opencart-le-ssl.confĐã bật mô-đun Apache socache_shmcbĐã bật mô-đun Apache sslTriển khai chứng chỉ tới VirtualHost /etc/nginx/sites-available/opencart-le-ssl.confBật trang web khả dụng: /etc/nginx/sites-available/opencart-le-ssl.confVui 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.
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, xóa quyền truy cập HTTP.

Tiếp theo, bạn sẽ cần chọn có chuyển hướng lưu lượng HTTP sang HTTPS như hiển thị bên dưới:
Mã:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -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ẽ nhận được kết quả sau:
Mã:
Chuyển hướng vhost trong /etc/nginx/sites-enabled/opencart.conf sang ssl vhost trong /etc/nginx/sites-available/opencart-le-ssl.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://opencart.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=opencart.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/opencart.linuxbuz.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/opencart.linuxbuz.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 30/04/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 với tùy chọn "certonly". Để gia hạn không tương tác *tất cả* các chứng chỉ của bạn, hãy chạy "certbot renew" - Thông tin đăng nhập tài khoản của bạn đã được lưu trong thư mục cấu hình Certbot tại /etc/letsencrypt. Bây giờ bạn nên sao lưu an toàn thư mục này. Thư mục cấu hình này cũng sẽ chứa các chứng chỉ và khóa riêng do Certbot thu được, do đó, việc sao lưu thường xuyên thư mục này là lý tưởng. - 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
Tại thời điểm này, OpenCart được bảo mật bằng Let's Encrypt SSL.

Truy cập Giao diện web OpenCart​

Bây giờ, hãy mở trình duyệt web của bạn và nhập URL https://opencart.linuxbuz.com. Bạn sẽ được chuyển hướng đến trang Thỏa thuận cấp phép OpenCart:



Nhấp vào nút Tiếp tục để chấp nhận Thỏa thuận cấp phép. Bạn sẽ thấy trang sau:





Đảm bảo rằng tất cả các tiện ích mở rộng PHP bắt buộc đã được cài đặt, sau đó nhấp vào nút TIẾP TỤC. Bạn sẽ thấy trang sau:



Cung cấp thông tin xác thực cơ sở dữ liệu, tên người dùng quản trị, mật khẩu và nhấp vào nút TIẾP TỤC. Sau khi quá trình cài đặt hoàn tất, bạn sẽ thấy trang sau:



Bây giờ, hãy mở terminal và xóa thư mục cài đặt bằng lệnh sau:
Mã:
rm -rf /var/www/html/opencart/install/
Tiếp theo, nhấp vào ĐẾN CỬA HÀNG TRỰC TUYẾN. Bạn sẽ thấy cửa hàng OpenCart của mình trên trang sau:



Tiếp theo, nhấp vào nút ĐĂNG NHẬP VÀO QUẢN TRỊ CỦA BẠN. Bạn sẽ thấy trang đăng nhập OpenCart:



Cung cấp tên người dùng quản trị, mật khẩu và nhấp vào nút Đăng nhập. Bạn sẽ thấy bảng quản trị OpenCart của mình ở trang sau:


Kết luận​

Xin chúc mừng! bạn đã cài đặt và bảo mật OpenCart thành công trên Debian 10. Bây giờ bạn có thể lưu trữ giỏ hàng trực tuyến của riêng mình bằng OpenCart. 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