В этой статье мы покажем вам, как установить 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.