В этой статье мы покажем вам, как установить Magento 2 на Ubuntu 16.04 VPS с MariaDB, Varnish как полный кэш страниц, Apache и Pound как SSL Termination. Это руководство должно работать на других системах Linux VPS так же хорошо, но было проверено и написано для Ubuntu 16.04 VPS.
Прежде чем мы начнем, вы можете выбрать другую установку для вашего Magento. Вы можете прочитать учебник, как установить Magento 2 на Ubuntu 16.04 VPS с MariaDB, PHP-FPM 7.0, Varnish как полный кэш страниц, Nginx, SSL Termination и Redis для хранения сеанса и кэширования страниц.
Или вы можете проверить этот учебник, чтобы установить Magento 2 на Ubuntu 16.04 VPS с MariaDB, Varnish как полный кэш страниц, Apache и Memcache для хранения сессии.
1. Вход и обновление сервера
Прежде всего, вам необходимо войти в систему Ubuntu 16,04 VPS через SSH с правами суперпользователя:
ssh root@server_IP_address
Кроме того, рекомендуется начать сеанс экрана, выполнив следующую команду
screen -U -S magento
Обновление системы и установить необходимые пакеты:
apt-get update && apt-get -y upgrade apt-get -y install curl nano git
Очень важно, чтобы вы всегда держать свой сервер в актуальном состоянии. Вы даже можете включить автоматическое обновление для того, чтобы достичь этого.
2. Установка и настройка MariaDB
Установите последнюю версию 10.0 сервера MariaDB из официальных репозиториев Ubuntu:
apt-get install -y mariadb-server
Далее, нам необходимо создать базу данных для нашей установки Magento.
mysql -u root -p
MariaDB [(none)]> CREATE DATABASE magento; MariaDB [(none)]> GRANT ALL PRIVILEGES ON magento.* TO 'magento'@'localhost' IDENTIFIED BY 'strong_password'; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> \q
Не забудьте заменить «strong_password» на фактический сильным пароль. Вы даже можете создать надежный пароль из командной строки.
3. Установите веб-сервер Apache2
apt-get install apache2
4. Установите PHP и необходимые PHP модули
Чтобы установить последнюю стабильную версию PHP версии 7 и все необходимые модули, выполните команду:
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 по умолчанию:
sed -i "s/memory_limit = .*/memory_limit = 256M/" /etc/php/7.0/cli/php.ini sed -i "s/upload_max_filesize = .*/upload_max_filesize = 128M/" /etc/php/7.0/cli/php.ini sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.0/cli/php.ini sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.0/cli/php.ini
Включите модуль перезаписи Apache2, если это не было сделано ранее:
a2enmod rewrite
Для того, чтобы активировать новую конфигурацию, перезапустите веб-сервер Apache, используя следующую команду:
service apache2 restart
5. Установка Composer
Composer является менеджером зависимостей для PHP с помощью которого можно установить пакеты. Composer будет тянуть все необходимые библиотеки и зависимости, необходимые для вашего проекта.
curl -sS https://getcomposer.org/installer | php mv composer.phar /usr/local/bin/composer
6. Установка Magento 2 из Github
Клонируйте репозиторий Magento в каталог ~/AndreyExMagentoSite.ru
, используя следующую команду:
git clone https://github.com/magento/magento2.git /var/www/AndreyExMagentoSite.ru
Получите последнюю стабильный релиз Magento 2:
cd /var/www/AndreyExMagentoSite.ru
git checkout $(git describe --tags $(git rev-list --tags --max-count=1))
Запустите Composer и установите все зависимости Magento:
composer install
Чтобы продолжить установку, вы можете использовать мастер установки или командную строку, в данном руководстве мы будем использовать последнее.
bin/magento setup:install \ --base-url=http://AndreyExMagentoSite.ru/ \ --db-host=localhost \ --db-name=magento \ --db-user=magento \ --db-password=strong_password \ --admin-firstname=First \ --admin-lastname=Last \ --admin-email=user@AndreyExMagentoSite.ru \ --admin-user=admin \ --admin-password=strong_password987 \ --language=ru_RU \ --currency=RU \ --timezone=Europe/<b>Moscow</b> \ --use-rewrites=1
Если установка прошла успешно, вы увидите что-то вроде этого:
[SUCCESS]: Magento installation complete. [SUCCESS]: Magento Admin URI: /admin_andreyex
Выполните команду crontab
, чтобы создать cronjob
crontab -u www-data -e
и добавьте следующую строку:
* * * * * /usr/bin/php /var/www/AndreyExMagentoSite.ru/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/AndreyExMagentoSite.ru/var/log/magento.cron.log
Наконец, установите правильные разрешения:
chown -R www-data: /var/www/AndreyExMagentoSite.ru
7. Настройка Apache
Создайте новую директиву виртуального хоста в Apache. Например, вы можете создать файл новой конфигурации Apache под названием «magento.conf» на сервере:
touch /etc/apache2/sites-available/magento.conf ln -s /etc/apache2/sites-available/magento.conf /etc/apache2/sites-enabled/magento.conf nano /etc/apache2/sites-available/magento.conf
Затем добавьте следующие строки:
<VirtualHost *:80> ServerAdmin admin@yourdomain.ru DocumentRoot /var/www/AndreyExMagentoSite.ru/ ServerName AndreyExMagentoSite.ru ServerAlias www.AndreyExMagentoSite.ru <Directory /var/www/AndreyExMagentoSite.ru/> Options FollowSymLinks AllowOverride All Order allow,deny allow from all </Directory> ErrorLog /var/log/apache2/AndreyExMagentoSite.ru-error_log CustomLog /var/log/apache2/AndreyExMagentoSite.ru-access_log common </VirtualHost>
Перезапустите веб-сервер Apache для того, чтобы изменения вступили в силу:
service apache2 restart
Вы должны теперь в состоянии войти в админку Magento, перейдя по адресу http://myMagentoSite.com/admin_andreyex
, используя информацию, которую вы установили при запуске bin/magento setup:install
.
8. Установка и настройка Varnish
Чтобы установить Varnish, нужно выполнить следующую команду:
apt-get install varnish
Из вашей админ панели Magento нажмите на ссылку STORES (слева боковой панели) -> Конфигурация -> Дополнительно -> Система -> Полный кэш страниц
Снимите флажок «Использовать системное значение» и из списка приложений Caching, выберите Varnish Cache (рекомендуется), сохранить конфигурацию, нажмите на ссылку Настройка Varnish и нажмите на Export VCL для кнопки Varnish 4. Файл varnish.vcl
, который мы будем использовать, будет экспортирован в каталог /var/www/myMagentoSite.com/var/
.
Очистите кэш Magento:
php bin/magento cache:flush
Удалите /etc/varnish/default.vcl
и создайте симлинк на конфигурацию varnish.
rm -f /etc/varnish/default.vcl ln -sf /var/www/AndreyExMagentoSite.ru/var/varnish.vcl /etc/varnish/default.vcl
Для того, чтобы изменить порт в varnish с 6081 на 80, нам нужно изменить конфигурацию службы Systemd.
Создать новый файл customexec.conf
mkdir -p /etc/systemd/system/varnish.service.d 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
и перезагрузите службу Systemd
systemctl daemon-reload
Теперь нам нужно изменить слушающий порт Apache с 80 на 8080. Чтобы сделать это, откройте файл конфигурации портов Apache и измените его следующим образом:
nano /etc/apache2/ports.conf Listen 80 -> Listen 8080
nano /etc/apache2/sites-available/magento.conf <VirtualHost *:80> -> <VirtualHost *:8080>
Если все настроено правильно, то вы должны в состоянии войти в свой Magento, перейдя по ссылке https://myMagentoSite.com/admin_andreyex
.
9. Установка и настройка Pound, как SSL Termination
Varnish не поддерживает SSL-трафик, так что вам нужно будет установить прокси или балансировку нагрузки, как Pound для обработки SSL трафика. Чтобы сделать это, мы настроим Pound только прослушивать порт 443 и передавать трафик на порта 80 Varnish.
Во-первых, давайте установим Pound:
apt-get install pound
Откройте файл конфигурации Pound:
nano /etc/pound/pound.cfg
и установить следующие значения:
ListenHTTPS Address 1.2.3.4 ## это должен быть ваш общедоступный IP-адрес сервера Port 443 Cert "/etc/apache2/ssl/AndreyExMagentoSite.ru.pem" ## путь к вашему SSL сертификату HeadRemove "X-Forwarded-Proto" AddHeader "X-Forwarded-Proto: https" Service BackEnd Address 127.0.0.1 Port 80 End End End
После того, как вы закончите, перезагрузите Apache и Varnish, и Pound:
service apache2 restart service varnish restart service pound restart
10. Далее оптимизация
Для дальнейшей оптимизации вашей установки Magento, зайдите в вашу админ панели управления Magento:
- Перейдите в МАГАЗИН -> Конфигурация -> Каталог -> Каталог -> Использовать плоский каталог, выберите Да и нажмите кнопку Сохранить конфигурацию.
- Перейдите в МАГАЗИН -> Конфигурация -> Дополнительно -> Разработчик -> Настройки JavaScript и установите объединение JavaScript файлов и минимизация JavaScript – файлов на Да и нажмите кнопку Сохранить конфигурацию.
- Перейдите в МАГАЗИН -> Конфигурация -> Дополнительно -> Разработчик -> Параметры CSS и установить объединение CSS файлов и минимизация CSS – файлов на Да и нажмите кнопку Сохранить конфигурацию.
- Рассмотрите возможность использования CDN – сеть доставки контента
Не забудьте очистить кэш снова:
php bin/magento cache:flush
Вы также можете следить за нашим руководством о том, как ускорить Magento.
Вот и все. Вы успешно установили Magento 2 с Memcache в качестве хранилища сеанса и кэширования страниц, Varnish как полное кэширование страниц и Apache на вашей Ubuntu 16,04 VPS и вы настроили Pound, как SSL Termination. Для получения дополнительной информации о том, как управлять установкой Magento, пожалуйста, обратитесь к официальному Magento документации.