Установка Magento · 8 min read · Oct 14, 2025

Как установить Magento 2 с Nginx и Letsencrypt на Ubuntu 18.04

Magento — это широко используемое программное обеспечение с открытым исходным кодом для электронной коммерции и система управления контентом для веб-сайтов электронной коммерции, основанная на PHP Zend Framework. Она использует MySQL или MariaDB в качестве базы данных. Разработка Magento началась в 2008 году компанией Varien.

В этом руководстве я покажу вам, как установить Magento 2 с Nginx, PHP 7.1 FPM и MySQL в качестве базы данных. Я буду использовать Ubuntu 18.04 (Bionic Beaver) в качестве операционной системы сервера. Если у вас еще нет минимальной настройки сервера, пожалуйста, посмотрите это руководство, чтобы получить правильную базовую настройку.

Предварительные требования

  • Ubuntu 18.04
  • 2 ГБ или больше оперативной памяти
  • Привилегии root

Что мы будем делать

  1. Установить Nginx на Ubuntu 18.04
  2. Установить и настроить PHP-FPM 7.1
  3. Установить и настроить MySQL Server
  4. Установить и настроить Magento 2 1. Установить PHP Composer
  5. Скачать Magento 2
  6. Установить компоненты Magento
  7. Сгенерировать SSL Letsencrypt
  8. Настроить виртуальный хост Nginx для Magento
  9. Постустановка Magento
  10. Тестирование

Шаг 1 - Установить Nginx на Ubuntu 18.04 LTS

В этом руководстве мы будем использовать веб-сервер Nginx для нашей установки Magento.

Войдите на сервер, обновите репозиторий и обновите все пакеты.

sudo apt update  
sudo apt upgrade

Теперь установите веб-сервер Nginx, используя команду apt ниже.

sudo apt install nginx -y

После завершения установки запустите службу Nginx и включите ее, чтобы она запускалась каждый раз при загрузке системы.

systemctl start nginx  
systemctl enable nginx

Веб-сервер Nginx установлен, проверьте его с помощью команды netstat и убедитесь, что HTTP-порт 80 находится в состоянии ‘LISTEN’. Другой способ — использовать команду curl, как показано ниже.

netstat -plntu  
curl -I localhost

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

Шаг 2 - Установить и настроить PHP-FPM 7.1

После установки веб-сервера Nginx мы установим PHP 7.1 на сервер, так как Magento пока не поддерживает PHP 7.2. Мы установим PHP-FPM со всеми расширениями, необходимыми для Magento 2.

Список расширений PHP, необходимых для установки Magento 2:

  • bc-math
  • ctype
  • curl
  • dom
  • gd, ImageMagick 6.3.7 (или более поздняя версия) или оба
  • intl
  • mbstring
  • mcrypt
  • hash
  • openssl
  • PDO/MySQL
  • SimpleXML
  • soap
  • spl
  • libxml
  • xsl
  • zip
  • json
  • iconv

Для этого руководства мы установим пакеты PHP-FPM из PPA-репозитория. Мы будем использовать репозиторий ‘ondrej/php’.

Установите пакет ‘software-properties-common’ и добавьте репозиторий ‘ondrej/php’, используя команды ниже.

sudo apt install software-properties-common -y  
sudo add-apt-repository ppa:ondrej/php -y

Установка PHP 7.1

Теперь установите PHP-FPM 7.1 со всеми необходимыми расширениями.

sudo apt install php7.1-fpm php7.1-mcrypt php7.1-curl php7.1-cli php7.1-mysql php7.1-gd php7.1-xsl php7.1-json php7.1-intl php-pear php7.1-dev php7.1-common php7.1-mbstring php7.1-zip php7.1-soap php7.1-bcmath -y

После завершения установки проверьте версию PHP и установленные расширения с помощью команд PHP.

php -v  
php -me

Проверка установки PHP

Далее мы настроим файл php.ini для PHP-FPM и PHP-CLI.

Отредактируйте файлы php.ini, используя vim.

vim /etc/php/7.1/fpm/php.ini  
vim /etc/php/7.1/cli/php.ini

Измените значение этих строк следующим образом.

memory_limit = 512M
max_execution_time = 180
zlib.output_compression = On

Сохраните и выйдите.

Теперь перезапустите службу PHP-fpm и включите ее, чтобы она запускалась каждый раз при загрузке системы.

systemctl restart php7.1-fpm  
systemctl enable php7.1-fpm

Установка и настройка PHP-FPM 7.1 завершены, проверьте службу с помощью команды netstat.

netstat -pl | grep php

И вы получите файл сокета PHP-fpm, как показано ниже.

Проверка сокета PHP-FPM

Шаг 3 - Установить и настроить MySQL Server

Программное обеспечение Magento требует MySQL 5.6.x, а Magento 2.1.2 или более поздние версии требуют MySQL 5.7.x. В этом руководстве мы установим последнюю версию MySQL 5.8 на систему Ubuntu 18.04.

Установите MySQL 5.8, используя команду apt ниже.

sudo apt install mysql-server mysql-client -y

После завершения установки запустите службу MySQL и включите ее, чтобы она запускалась каждый раз при загрузке системы.

systemctl start mysql  
systemctl enable mysql

Теперь мы настроим пароль root для MySQL с помощью команды ‘mysql_secure_installation’.

mysql_secure_installation

В этой версии MySQL 5.8 есть улучшение безопасности для политики паролей MySQL. Вам нужно выбрать политику паролей - 0 для НИЗКОЙ политики, 1 для СРЕДНЕЙ политики и 2 для СИЛЬНОЙ политики паролей.

Для этого руководства мы будем использовать политику паролей ‘СРЕДНЯЯ’, и рекомендуется использовать политику паролей ‘СИЛЬНАЯ’ на производственном сервере.

Выберите номер ‘1’ и нажмите Enter, затем введите ваш новый пароль ‘root’ для MySQL.

Безопасная установка MySQL

 Удалить анонимных пользователей? (Нажмите y|Y для Да, любую другую клавишу для Нет) : Y  
 Запретить удаленный вход root? (Нажмите y|Y для Да, любую другую клавишу для Нет) : Y  
 Удалить тестовую базу данных и доступ к ней? (Нажмите y|Y для Да, любую другую клавишу для Нет) : Y  
 Перезагрузить таблицы привилегий сейчас? (Нажмите y|Y для Да, любую другую клавишу для Нет) : Y

Пароль root для MySQL был установлен.

Теперь мы создадим новую базу данных для нашей установки Magento. Мы создадим новую базу данных с именем ‘magentodb’ с пользователем ‘magentouser’ и паролем ‘Magento0463@#’.

Войдите в оболочку MySQL, используя пользователя root.

mysql -u root -p

Теперь выполните запросы MySQL ниже, чтобы создать базу данных и пользователя.

create database magentodb;  
create user magentouser@localhost identified by 'Magento0463@#';  
grant all privileges on magentodb.* to magentouser@localhost identified by 'Magento0463@#';  
flush privileges;

Установка и настройка сервера MySQL для установки Magento завершены.

Создание базы данных MySQL и пользователя для Magento

Шаг 4 - Установить и настроить Magento 2

На этом шаге мы установим последнюю версию Magento 2.2.4 из репозитория Github. Мы установим PHP composer для установки компонентов Magento, загрузим Magento из репозитория Github, настроим виртуальный хост Nginx для Magento и установим Magento с помощью веб-интерфейса постустановки.

- Установить PHP Composer

Установите PHP Composer на Ubuntu 18.04, используя команду apt ниже.

sudo apt install composer -y

После завершения установки проверьте установленную версию composer на системе.

composer -V

Последняя версия PHP Composer была установлена.

- Скачать Magento 2

Перейдите в директорию ‘/var/www’ и загрузите архив исходного кода Magento из Github, используя команду wget.

cd /var/www/  
wget https://github.com/magento/magento2/archive/2.2.4.tar.gz

Теперь извлеките архивный файл Magento и переименуйте директорию в ‘magento2’.

tar -xf 2.2.4.tar.gz  
mv magento2-2.2.4/ magento2/

Исходный код Magento был загружен, и директория ‘/var/www/magento2’ будет корнем веб-сайта Magento.

- Установить компоненты Magento

Установите компоненты Magento с помощью PHP composer. Перейдите в директорию ‘magento2’ и установите все необходимые PHP компоненты для Magento, используя команду ‘composer’.

cd /var/www/magento2  
composer install -v

После завершения установки вы получите результат, как показано ниже.

- Сгенерировать SSL Letsencrypt

Мы обеспечим безопасность нашей установки Magento с помощью SSL от Letsencrypt. Установите Letsencrypt, используя команду apt ниже.

sudo apt install letsencrypt -y

После завершения установки остановите службу nginx.

systemctl stop nginx

Теперь сгенерируйте SSL-сертификаты для доменного имени, используя команду certbot, как показано ниже.

certbot certonly --standalone -d magento.hakase-labs.pw

Введите свой адрес электронной почты, примите условия использования Letsencrypt, затем введите ‘N’ для отказа от обмена электронной почтой.

Включить сертификат SSL Let's encrypt

Когда это будет завершено, вы получите результат, как показано ниже.

SSL сертификаты успешно выданы

Файлы сертификатов SSL Letsencrypt были сгенерированы в директории ‘/etc/letsencrypt/live’.

- Настроить виртуальный хост Nginx

Перейдите в директорию ‘/etc/nginx/sites-available’ и создайте новый файл виртуального хоста ‘magento’, используя vim.

cd /etc/nginx/sites-available/  
vim magento

Вставьте следующую конфигурацию туда.

upstream fastcgi_backend {
        server  unix:/run/php/php7.1-fpm.sock;
}

server {
    listen 80;
    listen [::]:80;
    server_name magento.hakase-labs.pw;
    return 301 https://$server_name$request_uri;
}

server {

        listen 443 ssl;
        server_name magento.hakase-labs.pw;

        ssl on;
        ssl_certificate /etc/letsencrypt/live/magento.hakase-labs.pw/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/magento.hakase-labs.pw/privkey.pem;

        set $MAGE_ROOT /var/www/magento2;
        set $MAGE_MODE developer;
        include /var/www/magento2/nginx.conf.sample;
}

Сохраните конфигурацию и выйдите.

Теперь активируйте виртуальный хост, создав символическую ссылку для файла виртуального хоста Magento в директории ‘sites-enabled’.

ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/

Проверьте файл конфигурации nginx и убедитесь, что нет ошибок.

nginx -t

Теперь перезапустите службы PHP-FPM и Nginx.

systemctl restart php7.1-fpm  
systemctl restart nginx

И измените владельца директории корня веб-сайта Magento на пользователя и группу ‘www-data’.

chown -R www-data:www-data /var/www/magento2/

Виртуальный хост nginx для Magento был добавлен.

- Постустановка Magento

Откройте веб-браузер и введите URL Magento. Мой URL:

https://magento.hakase-labs.pw/

Для ‘Условий и соглашений’ нажмите кнопку ‘Согласен и настроить Magento’.

Веб-инсталлятор Magento

Теперь проверьте все системные и серверные настройки для проверки ‘Readlines’ Magento и убедитесь, что все проверки системы и конфигурации ‘пройдены’, как показано ниже.

Проверка предварительных требований

Теперь нажмите кнопку ‘Далее’.

Конфигурация базы данных для Magento - введите всю информацию о нашей базе данных и нажмите ‘Далее’.

Конфигурация базы данных

Для веб-конфигурации измените ‘адрес магазина’ на HTTPS, ‘адрес администратора Magento’ на ваш URL пути администратора и снимите галочку с ‘Apache Rewrites’, так как мы используем веб-сервер Nginx.

Веб-конфигурация

Снова нажмите кнопку ‘Далее’.

Оставьте ‘Настроить ваш магазин’ по умолчанию и нажмите ‘Далее’.

Настроить магазин Magento

Введите своего администратора и пароль, затем нажмите ‘Далее’.

Настройка учетной записи администратора

И нажмите кнопку ‘Установить сейчас’, чтобы установить Magento.

Начать установку Magento

И когда установка завершится, вы получите результат ‘успех’, как показано ниже.

Установка Magento успешна

Теперь нам нужно отключить запись для директории ‘/var/www/magento2/app/etc’. Выполните команду ниже.

sudo chmod -w /var/www/magento2/app/etc

Magento был установлен на сервер Ubuntu 18.04 Bionic Beaver.

Шаг 5 - Тестирование

Введите домашний адрес URL Magento и убедитесь, что вы попали на главную страницу по умолчанию Magento. Мой URL: https://magento.hakase-labs.pw/

Главная страница Magento

Теперь войдите в панель администратора Magento, посетив URL, определенный во время установки ‘admin_hakase’. Мой URL:

https://magento.hakase-labs.pw/admin_hakase/

Вход в админку Magento

Введите имя пользователя и пароль, затем нажмите кнопку ‘Войти’.

И вы получите панель администратора Magento, как показано ниже.

Панель управления Magento

Magento 2 был установлен на Ubuntu 18.04 с веб-сервером Nginx, базой данных MySQL и PHP-FPM 7.1.

Дополнительно:

Если вы получите ошибку о недостающем cronjob индексатора Magento, вы можете решить ее, сгенерировав скрипт crontab с помощью команды ниже.

cd /var/www/magento2  
sudo -u www-data php bin/magento cron:install --force

Теперь проверьте список скриптов crontab для пользователя ‘www-data’.

crontab -u www-data -l

Настройка cronjob индексатора Magento

Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.