Cách thiết lập Magento 2 với Varnish và Apache trên Ubuntu 16.04

theanh

Administrator
Nhân viên
Magento là một Hệ thống quản lý nội dung mã nguồn mở và miễn phí được xây dựng trên PHP, Zend framework và cơ sở dữ liệu MySQL. Đây là ứng dụng web thương mại điện tử rất phổ biến chạy trên nhiều ứng dụng mã nguồn mở như Apache, MySQL và nhiều ứng dụng khác. Magento đi kèm với nhiều mô-đun tích hợp được sử dụng để bổ sung thêm nhiều chức năng hơn.

Varnish Cache là một trình tăng tốc ứng dụng web mã nguồn mở mạnh mẽ cũng được gọi là proxy ngược HTTP lưu trữ đệm. Nó được sử dụng để tăng tốc trang web của bạn bằng cách lưu trữ đệm một bản sao của trang web khi người dùng truy cập lần đầu tiên. Magento và Varnish là sự kết hợp được biết đến để tăng hiệu suất trang web đáng kể. Varnish được tích hợp theo mặc định trong Magento 2. Bạn chỉ cần thực hiện một số thay đổi cấu hình để làm cho nó hoạt động.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt Magento 2 với Varnish làm bộ đệm trang đầy đủ trên máy chủ Ubuntu 16.04.

Yêu cầu​

  • Máy chủ chạy Ubuntu 16.04.
  • Apache, PHP và MariaDB.
  • Người dùng không phải root có quyền sudo được thiết lập trên máy chủ của bạn.

1 Bắt đầu​

Trước khi bắt đầu, bạn nên cập nhật hệ thống của mình bằng gói mới nhất bằng cách chạy lệnh sau:
Mã:
sudo apt-get update -y
sudo apt-get upgrade -y
Sau khi hệ thống của bạn được cập nhật, hãy khởi động lại hệ thống và đăng nhập bằng người dùng sudo.

2 Cài đặt Máy chủ LAMP​

Magento sẽ không hoạt động nếu không cài đặt ngăn xếp LAMP (Apache, PHP, MariaDB). Trước tiên, hãy cài đặt máy chủ web Apache và varnish bằng cách chạy lệnh sau:
Mã:
sudo apt-get install apache2 varnish -y
Sau khi cài đặt Apache, hãy khởi động dịch vụ Apache và cho phép nó khởi động khi khởi động bằng cách chạy lệnh sau:
Mã:
sudo systemctl start apache2
sudo systemctl enable apache2
Magento được viết bằng ngôn ngữ PHP, vì vậy bạn cũng cần cài đặt PHP cùng với tất cả các thư viện vào hệ thống của mình. Bạn có thể cài đặt tất cả chúng bằng cách chạy lệnh sau:
Mã:
sudo apt-get install php7.0 libapache2-mod-php7.0 php7.0-mbstring php7.0-mysql php7.0-mcrypt php7.0-xsl php-imagick php7.0-gd php7.0-cli php-pear php7.0-intl php7.0-curl php7.0-zip php7.0-gd php7.0-soap php7.0-xml -y
Sau khi cài đặt PHP cùng với tất cả các thư viện cần thiết, bạn sẽ cần thay đổi một số thiết lập PHP mặc định. Bạn có thể thực hiện việc này bằng cách chỉnh sửa tệp php.ini:
Mã:
sudo nano /etc/php/7.0/cli/php.ini
Thay đổi các dòng sau:
Mã:
memory_limit = 512upload_max_filesize = 128Mzlib.output_compression = onmax_execution_time = 15000
Lưu và đóng tệp khi bạn hoàn tất.

3 Cài đặt và cấu hình MariaDB​

Magento sử dụng MariaDB làm cơ sở dữ liệu. Vì vậy, bạn sẽ cần cài đặt nó vào máy chủ của mình. Bạn có thể cài đặt nó chỉ bằng cách chạy lệnh sau:
Mã:
sudo apt-get install mariadb-server -y
Sau khi cài đặt MariaDB, hãy khởi động dịch vụ MariaDB và cho phép nó khởi động khi khởi động bằng cách chạy lệnh sau:
Mã:
sudo systemctl start mysql
sudo systemctl enable mysql
Theo mặc định, MariaDB không được bảo mật, vì vậy bạn sẽ cần bảo mật nó. Bạn có thể bảo mật nó bằng cách chạy lệnh sau:
Mã:
sudo mysql_secure_installation
Trả lời tất cả các câu hỏi như được hiển thị bên dưới:
Mã:
LƯU Ý: KHUYẾN NGHỊ CHẠY TẤT CẢ CÁC PHẦN CỦA Script này CHO TẤT CẢ CÁC MÁY CHỦ MariaDB ĐANG SỬ DỤNG TRONG SẢN XUẤT! VUI LÒNG ĐỌC KỸ TỪNG BƯỚC!Để đăng nhập vào MariaDB để bảo mật, chúng ta sẽ cầnmật khẩu hiện tại cho người dùng root. Nếu bạn vừa cài đặt MariaDB vàchưa đặt mật khẩu root, mật khẩu sẽ để trống,vì vậy bạn chỉ cần nhấn enter ở đây.Nhập mật khẩu hiện tại cho root (nhập nếu không có):OK, mật khẩu đã sử dụng thành công, tiếp tục...Đặt mật khẩu root đảm bảo rằng không ai có thể đăng nhập vào MariaDBngười dùng root nếu không có quyền thích hợp.Bạn đã đặt mật khẩu root, vì vậy bạn có thể trả lời 'n' một cách an toàn.Đổi mật khẩu root? [Y/n] n ... bỏ qua.Theo mặc định, cài đặt MariaDB có một người dùng ẩn danh, cho phép bất kỳ aiđăng nhập vào MariaDB mà không cần phải tạo tài khoản người dùng chohọ. Điều này chỉ dành cho mục đích thử nghiệm và để quá trình cài đặt diễn ra suôn sẻ hơn một chút. Bạn nên xóa chúng trước khi chuyển sangmôi trường sản xuất.Xóa người dùng ẩn danh? [Y/n] Có ... Thành công!Thông thường, root chỉ được phép kết nối từ 'localhost'. Điều nàyđảm bảo rằng không ai có thể đoán được mật khẩu root từ mạng.Không cho phép root đăng nhập từ xa? [Y/n] Có ... Thành công!Theo mặc định, MariaDB đi kèm với một cơ sở dữ liệu có tên là 'test' mà bất kỳ ai cũng có thểtruy cập. Điều này cũng chỉ dành cho mục đích thử nghiệm và nên xóatrước khi chuyển sang môi trường sản xuất.Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n] Có - Đang xóa cơ sở dữ liệu thử nghiệm... ... Thành công! - Đang xóa các đặc quyền trên cơ sở dữ liệu thử nghiệm... ... Thành công!Tải lại các bảng đặc quyền sẽ đảm bảo rằng tất cả các thay đổi đã thực hiện cho đến naysẽ có hiệu lực ngay lập tức.Tải lại các bảng đặc quyền ngay bây giờ? [Y/n] Có ... Thành công!Đang dọn dẹp...Xong! Nếu bạn đã hoàn tất tất cả các bước trên, thì quá trình cài đặt MariaDBcủa bạn hiện đã an toàn.Cảm ơn bạn đã sử dụng MariaDB!
Tiếp theo, đăng nhập vào shell MariaDB bằng lệnh sau:
Mã:
mysql -u root -p
Nhập mật khẩu root của bạn khi được nhắc, sau đó tạo cơ sở dữ liệu cho Magento bằng lệnh sau:
Mã:
MariaDB [(none)]>CREATE DATABASE magento_db;
Sau khi tạo cơ sở dữ liệu cho Magento, hãy tạo tên người dùng và mật khẩu bằng lệnh sau:
Mã:
MariaDB [(none)]>CREATE USER 'magento'@'localhost' IDENTIFIED BY 'password';
Tiếp theo, cấp quyền cho cơ sở dữ liệu Magento bằng lệnh sau:
Mã:
MariaDB [(none)]>GRANT ALL PRIVILEGES ON magento_db.* TO 'magento'@'localhost';
Tiếp theo, chạy lệnh FLUSH PRIVILEGES để tải lại các đặc quyền:
Mã:
MariaDB [(none)]>FLUSH PRIVILEGES;
Cuối cùng, thoát khỏi bảng điều khiển MariaDB bằng lệnh sau:
Mã:
MariaDB [(none)]>\q

4 Tải xuống Magento​

Trước tiên, bạn sẽ cần tải xuống phiên bản Magento mới nhất từ trang web chính thức của họ.

Sau khi tải xuống Magento, hãy giải nén tệp zip đã tải xuống vào thư mục gốc web của apache bằng lệnh sau:
Mã:
sudo mkdir /var/www/html/magento/
sudo unzip magento2-develop.zip -d /var/www/html/magento
Tiếp theo, thay đổi quyền sở hữu của thư mục magento và cấp quyền thích hợp cho nó:
Mã:
sudo chown -R www-data:www-data /var/www/html/magento
sudo chmod -R 777 /var/www/html/magento
Tiếp theo, bạn sẽ cần cài đặt Composer vào hệ thống của mình. Composer là trình quản lý phụ thuộc được sử dụng để cài đặt tất cả các phụ thuộc PHP cần thiết. Bạn có thể tải xuống và cài đặt Composer binary bằng lệnh sau:
Mã:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/bin/composer
Tiếp theo, chạy lệnh composer để cài đặt tất cả các phụ thuộc mà Magento yêu cầu:
Mã:
cd /var/www/html/magento
sudo composer install
Sau khi tất cả các phụ thuộc đã được cài đặt, bạn có thể tiến hành cấu hình Apache cho Magento.

5 Cấu hình Apache cho Magento​

Tiếp theo, bạn sẽ cần tạo tệp máy chủ ảo Apache cho Magento. Tạo tệp cấu hình Apache mới có tên là magento.conf bằng lệnh sau:
Mã:
sudo nano /etc/apache2/sites-available/magento.conf
Thêm các dòng sau:
Mã:
ServerAdmin [emailprotected]DocumentRoot /var/www/html/magentoServerName 192.168.15.189ServerAlias www.example.comOptions FollowSymLinksAllowOverride AllOrder allow,denyallow from allErrorLog /var/log/apache2/magento-error_logCustomLog /var/log/apache2/magento-access_log common
Lưu tệp, sau đó bật máy chủ ảo của bạn bằng mô-đun viết lại Apache theo lệnh sau:
Mã:
sudo a2ensite magento
sudo a2enmod rewrite
Tiếp theo, bạn cũng cần phải thay đổi cổng lắng nghe Apache từ 80 thành 8080. Bởi vì chúng ta sẽ dành cổng 80 cho Varnish. Để thực hiện, hãy mở tệp ports.conf:
Mã:
sudo nano /etc/apache2/ports.conf
Thay đổi tệp như hiển thị bên dưới:
Mã:
Listen 8080
Cuối cùng, khởi động lại dịch vụ Apache để áp dụng các thay đổi này bằng lệnh sau:
Mã:
sudo systemctl restart apache2

6 Access Magento Web Installation Wizard​

Magento hiện đã được cài đặt, giờ là lúc cài đặt Magento thông qua trình duyệt web.

Để thực hiện, hãy mở trình duyệt web của bạn và nhập URL http://192.168.15.189:8080, bạn sẽ thấy trang sau:



Bây giờ, hãy đồng ý với Điều khoản và Điều kiện rồi nhấp vào vào nút "Đồng ý và thiết lập Magento", bạn sẽ thấy trang sau:



Kiểm tra tất cả các mục Sẵn sàng và 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, như Tên cơ sở dữ liệu, Tên người dùng cơ sở dữ liệu và Mật khẩu, sau đó 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ề trang web của bạn và nhấp vào nút "Tiếp theo", bạn sẽ thấy trang sau:



Tùy chỉnh Magento theo nhu cầu của bạn và 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ề người dùng quản trị 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 cài đặt hoàn tất, bạn sẽ thấy trang sau:



Lưu ý: Hãy nhớ URL quản trị Magento của bạn: http://192.168.15.189/admin_wczta4. URL này sẽ được sử dụng để truy cập vào trang quản trị Magento.

Bây giờ, hãy nhấp vào nút "Khởi chạy trang quản trị Magento", bạn sẽ thấy trang đăng nhập Magento như bên dưới:



Cung cấp thông tin đăng nhập quản trị Magento của bạn và nhấp vào nút "Đăng nhập", bạn sẽ thấy Bảng điều khiển Magent-o như bên dưới:



Từ bảng điều khiển quản trị Magento của bạn, hãy nhấp vào nút CỬA HÀNG (bên trái) > Cấu hình > NÂNG CAO > Hệ thống > Bộ đệm trang đầy đủ, sau đó Bỏ chọn sử dụng giá trị hệ thống và chọn Bộ đệm Varnish từ danh sách Ứng dụng bộ đệm, lưu cấu hình, nhấp vào liên kết Cấu hình Varnish và nhấp vào nút Xuất VCL cho Varnish 4 (thao tác này sẽ xuất tệp varnish.vcl trong thư mục /var/www/html/magento/var) như hiển thị bên dưới:



Cuối cùng, hãy xóa bộ đệm Magento bằng lệnh sau:
Mã:
cd /var/www/html/magento
sudo php bin/magento cache:flush
Sau khi hoàn tất, bạn có thể tiến hành cấu hình varnish.

6 Cấu hình Varnish​

Magento hiện đã được cài đặt và cấu hình. Đã đến lúc cấu hình Varnish.

Đầu tiên, xóa tệp /etc/varnish/default.vcl và tạo liên kết tượng trưng từ cấu hình Varnish đã xuất:
Mã:
sudo rm -rf /etc/varnish/default.vcl
sudo ln -s /var/www/html/magento/var/varnish.vcl /etc/varnish/default.vcl
Tiếp theo, bạn sẽ cần tạo tệp dịch vụ systemd cho Varnish. Bạn có thể thực hiện việc này bằng cách sao chép varnish.service từ thư mục /lib/systemd/system/ đến /etc/systemd/system/:
Mã:
sudo cp /lib/systemd/system/varnish.service /etc/systemd/system/
Sau khi sao chép tệp này, bạn sẽ cần thực hiện một số thay đổi trong tệp varnish.service:
Mã:
sudo nano /etc/systemd/system/varnish.service
Thực hiện các thay đổi sau:
Mã:
[Unit]Description=Varnish HTTP acceleratorDocumentation=https://www.varnish-cache.org/docs/4.1/ man:varnishd[Service]Type=simpleLimitNOFILE=131072LimitMEMLOCK=82000ExecStart=/usr/sbin/varnishd -j unix,user=vcache -F -a :80 -T localhost:6082 -f /etc/varnish/default.vcl -S /etc/varnish/secret -s malloc,256mExecReload=/usr/share/varnish/reload-vclProtectSystem=fullProtectHome=truePrivateTmp=truePrivateDevices=true[Cài đặt]WantedBy=multi-user.target
Lưu tệp khi bạn hoàn tất, sau đó khởi động lại dịch vụ varnish bằng lệnh sau:
Mã:
sudo systemctl daemon-reload
sudo systemctl reload varnish.service
Nếu mọi thứ hoạt động tốt, thì bạn có thể đăng nhập vào phần phụ trợ Magento của mình bằng cách nhập URL sau vào trình duyệt web:

http://192.168.15.189/admin_wczta4

Bạn cũng có thể kiểm tra xem varnish đã được bật hay chưa bằng cách chạy lệnh sau:
Mã:
curl -I http://192.168.15.189/admin_wczta4
Bạn sẽ thấy varnish đã được bật:
Mã:
Ngày: Thứ sáu, 07 tháng 7 năm 2017 17:10:01 GMTMáy chủ: Apache/2.4.18 (Ubuntu)Set-Cookie: store=default; expires=Thứ bảy, 07 tháng 7 năm 2018 17:10:03 GMT; Max-Age=31536000; path=/; HttpOnlySet-Cookie: PHPSESSID=irp2k8cmrhct0dfh18qk7ap0i4; expires=Thứ sáu, 07 tháng 7 năm 2017 18:10:04 GMT; Max-Age=3600; path=/; domain=192.168.15.189; HttpOnlyHết hạn: Thu, 07/07/2016 17:10:04 GMTCache-Control: max-age=0, must-revalidate, no-cache, no-storePragma: no-cacheLocation: http://192.168.15.189/admin_wczta4/?SID=irp2k8cmrhct0dfh18qk7ap0i4X-Content-Type-Options: nosniffX-XSS-Protection: 1; mode=blockX-Frame-Options: SAMEORIGINContent-Length: 0Content-Type: text/html; charset=UTF-8X-Varnish: 2Age: 0Via: 1.1 varnish-v4Connection: keep-alive
Xin chúc mừng! bạn đã cấu hình thành công Magento với Varnish trên máy chủ Ubuntu 16.04.
 
Back
Bên trên