Налаштуйте Magento 2 з Redis, Larnish та Nginx як SSL-припинення

У цій статті ми покажемо вам, як встановити Magento 2 на Ubuntu 16.04 VPS з MariaDB, PHP-FPM 7.0, Varnish як повноцінну кеш-пам'ять, Nginx як SSL-припинення та Redis для зберігання сеансів та кешування сторінок. Цей посібник повинен працювати і на інших VPS-системах Linux, але був протестований і написаний для Ubuntu 16.04 VPS.

Увійдіть до свого VPS через SSH

ssh my_sudo_user @ my_server

Оновіть систему та встановіть необхідні пакети

sudo apt-get update && sudo apt-get -y оновлення sudo apt-get -y встановити curl nano git

Встановити MariaDB 10.0

Встановіть останній сервер MariaDB 10.0 з офіційних репозиторіїв Ubuntu:

sudo apt-get install -y mariadb-server

Коли інсталяція завершена, запустіть таку команду, щоб захистити вашу установку:

mysql_secure_installation

Далі нам потрібно створити базу даних для нашої установки Magento.

mysql -uroot -p
MariaDB [(none)]> CREATE DATABASE magento; MariaDB [(none)]> ОТРИМУЙТЕ ВСІ ПРИВІЛЕГИ від magento. * До 'magento' @ 'localhost' IDENTIFIED BY 'my_strong_password'; MariaDB [(none)]> ФЛЮШ ПРИВІЛЕГИ; MariaDB [(none)]> q

Встановити PHP 7.0, композитор та всі необхідні модулі PHP

Щоб встановити останню стабільну версію PHP 7.0 та всі необхідні модулі, запустіть:

sudo apt-get -y встановити php-fpm php-cli php-gd php-imagick php-mysql php-mcrypt php-pear php-curl php-intl php-xsl php-zip php-mbstring

Змінити кілька стандартних PHP налаштувань:

sudo sed -i "s / memory_limit =. * / memory_limit = 256M /" /etc/php/7.0/fpm/php.ini sudo sed -i "s / upload_max_filesize =. * / upload_max_filesize = 128M /" / etc / php /7.0/fpm/php.ini sudo sed -i "s / zlib.output_compression =. * / Zlib.output_compression = on /" /etc/php/7.0/fpm/php.ini sudo sed -i "s / max_execution_time = * / max_execution_time = 18000 / "/etc/php/7.0/fpm/php.ini

Композитор - менеджер залежності для PHP, за допомогою якого ви можете встановити пакунки. Композитор буде витягувати всі необхідні бібліотеки та залежності, які вам потрібні для вашого проекту.

curl -sS https://getcomposer.org/installer | php sudo mv composer.phar / usr / local / bin / composer

Встановіть Magento 2 з Github

Клонування сховища Magento до ~ / myMagentoSite.com каталог за допомогою такої команди:

sudo git https://github.com/magento/magento2.git/var/www/myMagentoSite.com

Отримайте останню стабільну версію, на момент написання це Magento 2.1.2:

cd /var/www/myMagentoSite.com
sudo git checkout $ (опис git описано --tags $ (git rev-list --tags --max-count = 1))

Запустіть композитора, щоб встановити всі залежності Magento:

sudo композитор встановити

Для продовження установки можна скористатись майстром встановлення або командним рядком, в цьому посібнику ми будемо використовувати останню.

sudo bin / magento setup: install --base-url = http: //myMagentoSite.com/ - db-хост = localhost --db-name = magento --db-user = magento --db-password = my_strong_password - -admin-firstname = Перший --admin-lastname = Останнє --admin-email=user@myMagentoSite.com --admin-user = admin --admin-password = my_strong_password123 --language = en_US --currency = USD - timezone = America / Чикаго --використовує-перезаписує = 1

Якщо установка буде успішною, ви побачите щось на зразок нижче:

[SUCCESS]: встановлення Magento завершено. [SUCCESS]: Magento Admin URI: / admin_mejj1n

Запустіть кронтаб команду, щоб створити cronjob

crontab -u www-data-e

і додати наступний рядок:

* * * * * / usr / bin / php /var/www/myMagentoSite.com/bin/magento cron: run | grep -v "Забіг робочих місць за розкладом" >> /var/www/myMagentoSite.com/var/log/magento.cron.log

Нарешті, встановіть правильні дозволи:

sudo chown-r www-data: /var/www/myMagentoSite.com

Встановіть і налаштуйте Nginx

Встановити Nginx з офіційних репозиторіїв Ubuntu ::

sudo apt-get -y встановити nginx

Створіть новий сервер Nginx із таким вмістом:

sudo nano /etc/nginx/sites-available/myMagentoSite.com
upstream fastcgi_backend {сервер unix: /run/php/php7.0-fpm.sock; } сервер {ім'я_сервера myMagentoSite.com www.myMagentoSite.com; слухати 80; встановити $ MAGE_ROOT /var/www/myMagentoSite.com; встановити $ MAGE_MODE розробника; # або production access_log /var/log/nginx/myMagentoSite.com-access.log; error_log /var/log/nginx/myMagentoSite.com-error.log; включити /var/www/myMagentoSite.com/nginx.conf.sample; }

Активуйте серверний блок, створивши символічне посилання:

sudo ln -s /etc/nginx/sites-available/myMagentoSite.com/etc/nginx/sites-enabled/myMagentoSite.com

Видалити конфігурацію за замовчуванням:

sudo rm -f / etc / nginx / sites-enabled / default

Перевірте конфігурацію Nginx та перезапустіть nginx:

Судо nginx -t Судо служба nginx перезавантаження

Тепер вам слід ввійти у свій Magento, перейшовши до http://myMagentoSite.com/admin_mejj1n використовуючи інформацію, яку ви встановили під час запуску контейнер / magento setup: встановити .

Встановити та налаштувати лак

Встановлення лаку можна так само просто, як запустити таку команду:

sudo apt-get install лак

Від вас панель інструментів адміністрування Magento натисніть на посилання "STORES" (ліва бічна панель) -> Конфігурація -> ADVANCED -> Система -> Кеш повної сторінки
Невибране значення Використовувати системне значення, а в списку додатків кешування виберіть «Кеш для лакування» (рекомендовано), збережіть конфігурацію, натисніть посилання «Налаштування лакування» та натисніть кнопку Експортувати VCL для лаку 4. The лак.вкл Файл, який ми будемо використовувати, буде експортовано в /var/www/myMagentoSite.com/var/ каталог.

Очистити кеш-пам'ять Magento за допомогою:

sudo php bin / magento cache: флеш

Видалити /etc/varnish/default.vcl і символ посилається на експортований лаковий конфігурацію.

sudo rm -f /etc/varnish/default.vcl sudo ln -sf /var/www/myMagentoSite.com/var/varnish.vcl/etc/varnish/default.vcl

Щоб змінити лаковий порт від 6081 до 80, нам потрібно змінити конфігурацію служби systemd.

Створіть новий customexec.conf файл

sudo mkdir -p /etc/systemd/system/varnish.service.d sudo nano /etc/systemd/system/varnish.service.d/customexec.conf

вставте наступне:

[Service] ExecStart = ExecStart = / usr / sbin / varnishd -j unix, user = vcache -F -a: 80 -T localhost: 6082 -f /etc/varnish/default.vcl -S / etc / varnish / secret - s malloc, 256m

і перезавантажте системні блоки

sudo systemctl daemon-reload

Тепер нам потрібно змінити прослуховуючий порт Nginx від 80 до 8080 і включити Nginx SSL завершення з HTTP2, для цього відкрийте файл конфігурації Nginx і змініть його таким чином:

sudo nano /etc/nginx/sites-available/myMagentoSite.com
upstream fastcgi_backend {сервер unix: /run/php/php7.0-fpm.sock; } сервер {ім'я_сервера myMagentoSite.com www.myMagentoSite.com; слухати 8080; встановити $ MAGE_ROOT /var/www/myMagentoSite.com; встановити виробництво $ MAGE_MODE; # або розробник access_log /var/log/nginx/myMagentoSite.com-access.log; error_log /var/log/nginx/myMagentoSite.com-error.log; включити /var/www/myMagentoSite.com/nginx.conf.sample; } сервер {слухати 443 ssl http2; ім'я_сервера myMagentoSite.com www.myMagentoSite.com; ssl_certificate /etc/ssl/certs/ssl-cert-snakeoil.pem; # змінити зі своїм сертифікатом SSL ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key; # змінити за допомогою ключа SSL ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers 'AES128 + EECDH: AES128 + EDH:! aNULL'; ssl_session_cache shared: SSL: 10m; ssl_session_timeout 24h; keepalive_timeout 300s; розташування / {proxy_pass http: // 127.0.0.1; proxy_set_header Хост $ http_host; proxy_set_header X-Forwarded-Host $ http_host; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Forwarded-Для $ proxy_add_x_forwarded_for; proxy_set_header Ssl-Offloaded "1"; #proxy_hide_header X-лак; # proxy_hide_header Via; proxy_set_header X-Forwarded-Proto $ схема; }}

Якщо у вас ще немає сертифіката SSL, ви можете придбати довірений сертифікат SSL тут.

Перезапустити лак і Nginx:

sudo systemctl перезавантажити nginx sudo systemctl перезавантажити лак

Змініть базову URL-адресу на https і скиньте кеш

sudo bin / magento setup: store-config: set --base-url = "https://myMagentoSite.com" sudo php bin / magento cache: флеш

Якщо все правильно налаштовано зараз, ви повинні мати можливість увійти до свого сервера Magento, перейшовши на сторінку https://myMagentoSite.com/admin_mejj1n.

Встановіть та налаштуйте кешування Redis

Redis - це ключове значення в сховищі даних пам'яті, і ми будемо використовувати його для заміни резервної кеш-пам'яті Magento 2 за замовчуванням Zend_Cache_Backend_File за замовчуванням. Встановіть Redis, запустивши таку команду:

apt-get install php-redis redis-server

Щоб налаштувати вашу установку Magento для використання Redis для зберігання сеансів, відкрийте app / etc / env.php файл і змінити / додати наступне:

sudo nano /var/www/myMagentoSite.com/app/etc/env.php

змінити:

  'session' => масив ('save' => 'files',),

з:

'session' => array ('save' => 'redis', 'redis' => array ('host' => '127.0.0.1', 'port' => '6379', 'password' => '', ' timeout '=>' 2.5 ',' persistent_identifier '=>' ',' database '=>' 0 ',' compression_threshold '=>' 2048 ',' compression_library '=>' gzip ',' log_level '=>' 1 ',' max_concurrency '=>' 6 ',' break_after_frontend '=>' 5 ',' break_after_adminhtml '=>' 30 ',' first_lifetime '=>' 600 ',' bot_first_lifetime '=>' 60 ',' bot_lifetime ' => '7200', 'disable_locking' => '0', 'min_lifetime' => '60', 'max_lifetime' => '2592000')),

і використовувати Redis для кешування сторінок додати:

'' cache '=> array (' frontend '=> array (' default '=> масив (' backend '=>' Cm_Cache_Backend_Redis ',' backend_options '=> масив (' server '=>' 127.0.0.1 ',' port ' > '6379'), ',' page_cache '=> масив (' backend '=>' Cm_Cache_Backend_Redis ',' backend_options '=> масив (' server '=>' 127.0.0.1 ',' port '=>' 6379 ' база даних '=>' 1 ',' compress_data '=>' 0 ')))),

Нарешті скиньте кеш знову:

sudo php bin / magento cache: флеш

Подальші оптимізації

Для подальшої оптимізації вашої Magento установки від вас панель адміністратора Magento:

1 Перейдіть до СТОРОНИ -> Конфігурація -> КАТАЛОГ -> Каталог -> Використовуйте плосну категорію каталогу, виберіть Так і натисніть Зберегти конфігурацію.
2 Перейдіть до СТОРОНИ -> Конфігурація -> ADVANCED -> Розробник -> Параметри JavaScript і встановіть обидва об'єднати файли JavaScript і мінімізуйте JavaScript файли в Так і натисніть Зберегти конфігурацію ..
3 Перейдіть до СТОРОН -> Конфігурація -> ADVANCED -> Розробник -> Параметри CSS і встановіть як Merge CSS-файли, так і Minify CSS-файли в Так і натисніть Зберегти конфігурацію.
4 Подумайте про використання мережі CDN - Content Delivery Network

Не забудьте змити кеш-пам'ять:

sudo php bin / magento cache: флеш

Це воно. Ви успішно встановили Magento 2 з Redis як сховище сеансів та кешування сторінок, лакування як повне кешування сторінок та Nginx як завершення SSL на вашому Ubuntu 16.04 VPS. Щоб отримати додаткові відомості про те, як керувати установкою Magento, зверніться до офіційного Magento документація.

джерело

Залишити коментар

Цей сайт використовує Akismet для зменшення спаму. Дізнайтеся, як обробляються ваші дані коментарів.