ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Как установить Magento 2 с Apache, Varnish и Memcache

Как установить Magento 2 с Apache, Varnish и Memcache

В этой статье мы покажем вам, как установить Magento 2 на Ubuntu 16.04 VPS с MariaDB, Varnish как полный кэш страниц, Apache и Memcache для хранения сессии. Это руководство должно работать на других системах Linux VPS так же хорошо, но было проверено и написано для Ubuntu 16.04 VPS.

Прежде чем мы начнем, вы можете выбрать другую установку для вашего Magento. Вы можете посмотреть этот учебник, чтобы установить Magento 2 на Ubuntu 16.04 VPS с MariaDB, PHP-FPM 7.0, Varnish как полный кэш страниц, Nginx , терминатор SSL и Redis для хранения сеанса и кэширования страниц.

ИНСТРУКЦИИ:

Прежде всего, войдите в свою Ubuntu 16,04 VPS через SSH с правами суперпользователя:

ssh root@IP_address

 

В самом начале, лучше всего начать сеанс экрана, выполнив следующую команду:

screen -U -S magento

 

Обновление системы и установка необходимых пакетов:

apt-get update && apt-get -y upgrade
apt-get -y install curl nano git

 

Убедитесь в том, чтобы всегда держать свой сервер в актуальном состоянии. Вы даже можете включить автоматическое обновление.

Установка и настройка MariaDB 10.1

Чтобы добавить репозиторий MariaDB в список источников и установить последнюю версию сервера MariaDB, выполните следующие команды:

apt-get install software-properties-common
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
add-apt-repository 'deb [arch=amd64,i386,ppc64el] https://mirrors.evowise.com/mariadb/repo/10.1/ubuntu xenial main'

 

После этого, как ключ импортируется и репозиторий будет добавлен можно установить MariaDB:

apt-get update && apt-get -y upgrade
apt-get install mariadb-server

 

Далее, нам необходимо создать базу данных для нашей установки.

mysql -uroot -p
MariaDB [(none)]> CREATE DATABASE magento;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON magento.* TO 'magento'@'localhost' IDENTIFIED BY 'my_strong_password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

 

Не забудьте заменить «my_strong_password» на сильный пароль.

Установка веб-сервера Apache2

[destroyer]$ sudo apt-get install apache2

Установка PHP и необходимых модулей PHP

Чтобы установить последнюю стабильную версию PHP версии 7 и все необходимые модули, выполните команду:

[destroyer]$ apt-get install php7.0 libapache2-mod-php7.0 php7.0-mbstring php7.0-curl php7.0-zip php7.0-gd php7.0-mysql php7.0-mcrypt php7.0-xsl php-imagick php7.0-gd php7.0-cli php-pear php7.0-intl

 

Изменение нескольких параметров PHP по умолчанию:

[destroyer]$ sed -i "s/memory_limit = .*/memory_limit = 256M/" /etc/php/7.0/cli/php.ini
[destroyer]$ sed -i "s/upload_max_filesize = .*/upload_max_filesize = 128M/" /etc/php/7.0/cli/php.ini
[destroyer]$ sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.0/cli/php.ini
[destroyer]$ sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.0/cli/php.ini

 

Включить модуль перезаписи Apache2, если это не было сделано ранее:

[destroyer]$ a2enmod rewrite

 

Для того, чтобы активировать новую конфигурацию, перезапустите веб-сервер Apache, используя следующую команду:

[destroyer]$ service apache2 restart

Установка Composer

Composer является менеджером зависимостей для PHP с помощью которого можно установить пакеты. Composer будет тянуть все необходимые библиотеки и зависимости, необходимые для вашего проекта.

[destroyer]$ curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

Установка Magento 2 из Github

Сделайте Клон репозитория Magento в каталог ~/myMagentoSite.com, используя следующую команду:

[destroyer]$ git clone https://github.com/magento/magento2.git /var/www/myMagentoSite.com

 

Получите последний стабильный релиз Magento 2:

[destroyer]$ cd /var/www/myMagentoSite.com
[destroyer]$ git checkout $(git describe --tags $(git rev-list --tags --max-count=1))

 

Запустите composer и установите все зависимости Magento:

[destroyer]$ composer install

 

Чтобы продолжить установку, вы можете использовать мастер установки или командную строку, в данном руководстве мы будем использовать последнюю.

[destroyer]$ bin/magento setup:install \
--base-url=http://myMagentoSite.com/ \
--db-host=localhost \
--db-name=magento \
--db-destroyer=magento \
--db-password=my_strong_password \
--admin-firstname=First  \
--admin-lastname=Last \
--admin-email=destroyer@myMagentoSite.com \
--admin-destroyer=admin \
--admin-password=my_strong_password123 \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1

 

Если установка прошла успешно, вы увидите что-то вроде показанного ниже:

[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_t0x0nr

 

Выполните команду crontab, чтобы создать cronjob

crontab -u www-data -e

 

и добавьте следующую строку:

* * * * * /usr/bin/php /var/www/myMagentoSite.com/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/myMagentoSite.com/var/log/magento.cron.log

 

Наконец, установите правильные разрешения:

[destroyer]$ chown -R www-data: /var/www/myMagentoSite.com

Настройка Apache

Создайте новую директиву виртуального хоста в Apache. Например, можно создать файл новой конфигурации Apache под названием «magento.conf» на виртуальном сервере:

[destroyer]$ touch /etc/apache2/sites-available/magento.conf
[destroyer]$ ln -s /etc/apache2/sites-available/magento.conf /etc/apache2/sites-enabled/magento.conf
[destroyer]$ nano /etc/apache2/sites-available/magento.conf

 

Затем добавьте следующие строки:

<VirtualHost *:80>
ServerAdmin admin@yourdomain.com
DocumentRoot /var/www/myMagentoSite.com/
ServerName myMagentoSite.com
ServerAlias www.myMagentoSite.com
<Directory /var/www/myMagentoSite.com/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog /var/log/apache2/myMagentoSite.com-error_log
CustomLog /var/log/apache2/myMagentoSite.com-access_log common
</VirtualHost>

 

Перезапустите веб-сервер Apache для того, чтобы изменения вступили в силу:

[destroyer]$ sudo service apache2 restart

 

Вы должны теперь в состоянии войти в свой Magento, перейдя по адресу http://myMagentoSite.com/admin_t0x0nr используя информацию, которую вы установили при запуске bin/magento setup:install.

Установка и настройка Varnish

Установите Varnish, выполнив следующую команду:

[destroyer]$ apt-get install varnish

 

Зайдите в админку Magento, нажмите на ссылку МАГАЗИНЫ (слева боковой панели) -> Конфигурация -> Дополнительно -> Система -> Страница полного Кэша

Снимите выбор со значение использования системы и из списка приложений Caching, выберите Varnish Cache (рекомендуется), сохраните конфигурацию, нажмите на ссылку Настройка Varnish и нажмите на Export VCL для кнопки Varnish 4. Файл varnish.vcl, который мы будем использовать , будет экспортирован в каталог  /var/www/myMagentoSite.com/var/.

Очистить кэш Magento:

[destroyer]$ php bin/magento cache:flush

 

Удалите /etc/varnish/default.vcl и симлинки экспортированной конфигурации varnish.

[destroyer]$ rm -f /etc/varnish/default.vcl
[destroyer]$ ln -sf /var/www/myMagentoSite.com/var/varnish.vcl /etc/varnish/default.vcl

 

Для того, чтобы изменить порт от 6081 на 80 в varnish, нам нужно изменить конфигурацию службы Systemd.

Создайте новый файл customexec.conf

[destroyer]$ mkdir -p /etc/systemd/system/varnish.service.d
[destroyer]$ nano /etc/systemd/system/varnish.service.d/customexec.conf

 

вставьте следующее:

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

 

и перезагрузите службу Systemd

[destroyer]$systemctl daemon-reload

 

Теперь нам нужно изменить Apache, чтобы он прослушивал порт от 80 на 8080. Чтобы сделать это, откройте файл конфигурации портов Apache и измените его следующим образом:

[destroyer]$ nano /etc/apache2/ports.conf

Listen 80 -> Listen 8080
[destroyer]$ nano /etc/apache/sites-available/magento.conf

<VirtualHost *:80> -> <VirtualHost *:8080>

 

Если все настроено правильно, то вы должны быть в состоянии войти в свою админку Magento, перейдя по ссылке https://myMagentoSite.com/admin_t0x0nr.

Установка и настройка кеширования Memcache

Memcache является ключевым значением в хранении данных в памяти, и мы будем использовать его для замены Magento 2 Zend_Cache_Backend_File в админке по умолчанию. Установите Memcache, выполнив следующую команду:

[destroyer]$ apt-get install php-memcache memcached

 

Чтобы настроить установку Magento и использовать Memcache для хранения сессии откройте файл app/etc/env.php и измените/добавьте следующее:

[destroyer]$ nano /var/www/myMagentoSite.com/app/etc/env.php

 

изменение:

'session' =>
    array (
    'save' => 'files',
),

с:

'session' =>
   array (
      'save' => 'memcache',
      'save_path' => 'tcp://127.0.0.1:11211'
),

 

Наконец очистите кэш снова:

[destroyer]$ php bin/magento cache:flush

Оптимизация

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

1. Перейдите к вкладке МАГАЗИНЫ -> Конфигурация -> Каталог -> Каталог -> Использовать плоский каталог, выберите Да и нажмите кнопку Сохранить конфигурацию.
2. Перейдите к вкладке МАГАЗИНЫ -> Конфигурация -> Дополнительно -> Разработчик -> Настройки JavaScript и установите: объединить файлы JavaScript и минимизировать файлы JavaScript —  на Да и нажмите кнопку Сохранить конфигурацию.
3. Перейдите к вкладке МАГАЗИНЫ -> Конфигурация -> Дополнительно -> Разработчик -> Параметры CSS и установить: объединить файлы CSS и минимизировать файлы CSS — на Да и нажмите кнопку Сохранить конфигурацию.
4. Рассмотрите возможность использования CDN — сеть доставки контента

Не забудьте очистить кэш снова:

[destroyer]$ php bin/magento cache:flush

Вы также можете посмотреть руководство о том , как ускорить Magento.

Вот и все. Вы успешно установили Magento 2 с Memcache как кэширование хранения сеанса и страниц, Varnish в качестве полного кэширования страниц и Apache на вашей Ubuntu 16.04 VPS. Для получения дополнительной информации о том, как управлять установкой Magento, пожалуйста, обратитесь к официальной документации Magento.

Exit mobile version