Установка и настройка Magento 2 / Adobe Commerce

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Установка и настройка Magento 2 / Adobe Commerce
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Установка и настройка Magento 2 / Adobe Commerce

Корректная первоначальная установка Magento 2 определяет стабильность всей последующей работы. Здесь нет места для компромиссов по стеку: неправильная версия PHP, отсутствие Elasticsearch или Redis под сессии — это проблемы, которые вылезут на продакшене в самый неподходящий момент.

Подготовка сервера

Минимальные требования для dev/staging:

  • 4 vCPU, 8 GB RAM, 50 GB SSD
  • Ubuntu 22.04 LTS или RHEL 9

Рекомендуемые для prod (до 50k SKU, средняя нагрузка):

  • 8 vCPU, 16 GB RAM, 100 GB SSD
  • Отдельный сервер для MySQL, отдельный для Elasticsearch

Установка стека на Ubuntu 22.04:

# Nginx
apt install nginx -y
systemctl enable nginx

# PHP 8.2 + расширения
add-apt-repository ppa:ondrej/php -y && apt update
apt install php8.2-fpm php8.2-bcmath php8.2-ctype php8.2-curl \
    php8.2-dom php8.2-fileinfo php8.2-gd php8.2-intl php8.2-mbstring \
    php8.2-mysqlnd php8.2-opcache php8.2-pdo php8.2-simplexml \
    php8.2-soap php8.2-xsl php8.2-zip php8.2-sockets -y

# MySQL 8.0
apt install mysql-server -y
mysql_secure_installation

# Redis
apt install redis-server -y

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

Настройка PHP-FPM (/etc/php/8.2/fpm/pool.d/magento.conf):

[magento]
user = www-data
group = www-data
listen = /run/php/php8.2-fpm-magento.sock
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pm.max_requests = 500

php.ini настройки:

memory_limit = 2G
max_execution_time = 1800
zlib.output_compression = On
opcache.enable = 1
opcache.memory_consumption = 512
opcache.max_accelerated_files = 60000
opcache.consistency_checks = 0
opcache.validate_timestamps = 0  ; только в prod (в dev = 1)

OpenSearch / Elasticsearch

Magento 2.4 требует Elasticsearch или OpenSearch — стандартный MySQL-поиск удалён:

# OpenSearch 2.x
wget https://artifacts.opensearch.org/releases/bundle/opensearch/2.11.0/opensearch-2.11.0-linux-x64.tar.gz
tar -xzf opensearch-2.11.0-linux-x64.tar.gz

# Настройка /etc/opensearch/opensearch.yml
cluster.name: magento
node.name: node-1
network.host: 127.0.0.1
http.port: 9200
discovery.type: single-node
plugins.security.disabled: true  # только для localhost dev

Установка Magento через Composer

# Создание проекта (нужны ключи с account.magento.com)
composer create-project \
    --repository-url=https://repo.magento.com/ \
    magento/project-community-edition=2.4.7-p3 \
    /var/www/magento

cd /var/www/magento
chown -R www-data:www-data .
chmod -R 775 var generated pub/static pub/media

# Создание БД
mysql -u root -e "
    CREATE DATABASE magento CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
    CREATE USER 'magento'@'localhost' IDENTIFIED BY 'StrongPassword123!';
    GRANT ALL ON magento.* TO 'magento'@'localhost';
    FLUSH PRIVILEGES;
"

# Установка
bin/magento setup:install \
    --base-url="https://myshop.example.com/" \
    --db-host="localhost" \
    --db-name="magento" \
    --db-user="magento" \
    --db-password="StrongPassword123!" \
    --admin-firstname="Admin" \
    --admin-lastname="User" \
    --admin-email="[email protected]" \
    --admin-user="admin_secure_name" \
    --admin-password="Admin@Secure123!" \
    --language="ru_RU" \
    --currency="RUB" \
    --timezone="Europe/Moscow" \
    --use-rewrites=1 \
    --search-engine="opensearch" \
    --opensearch-host="127.0.0.1" \
    --opensearch-port=9200 \
    --session-save="redis" \
    --session-save-redis-host="127.0.0.1" \
    --session-save-redis-db=1 \
    --cache-backend="redis" \
    --cache-backend-redis-server="127.0.0.1" \
    --cache-backend-redis-db=2 \
    --page-cache="redis" \
    --page-cache-redis-server="127.0.0.1" \
    --page-cache-redis-db=3 \
    --backend-frontname="admin_$(openssl rand -hex 4)"

Nginx конфигурация

upstream fastcgi_backend {
    server unix:/run/php/php8.2-fpm-magento.sock;
}

server {
    listen 443 ssl http2;
    server_name myshop.example.com;
    root /var/www/magento/pub;

    ssl_certificate     /etc/letsencrypt/live/myshop.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/myshop.example.com/privkey.pem;

    index index.php;
    autoindex off;
    charset UTF-8;

    location /setup {
        root /var/www/magento;
        location ~ ^/setup/index.php {
            fastcgi_pass fastcgi_backend;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }

    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    location ~ ^/index\.php {
        fastcgi_pass fastcgi_backend;
        fastcgi_buffers 16 16k;
        fastcgi_buffer_size 32k;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param MAGE_RUN_TYPE store;
    }

    location ~* \.(ico|jpg|jpeg|png|gif|svg|js|css|swf|eot|ttf|otf|woff|woff2)$ {
        expires max;
        log_not_found off;
        add_header Cache-Control "public";
    }

    location ~ /\. { deny all; }
    location ~ /app/ { deny all; }
    location ~ /lib/ { deny all; }
    location ~ /var/ { deny all; }
    location ~ /setup/ { deny all; }
}

Базовая конфигурация после установки

Режим работы (prod vs developer):

# Production mode — скомпилированный DI, минифицированный JS/CSS
bin/magento deploy:mode:set production

# Developer mode — для разработки (нет кеша, на лету перекомпилирует)
bin/magento deploy:mode:set developer

Индексеры — должны быть в режиме Update on Schedule для prod:

bin/magento indexer:set-mode schedule
bin/magento indexer:reindex  # первичная индексация

Cron — обязателен для работы Magento:

bin/magento cron:install
# Добавляет в crontab www-data:
# * * * * * /usr/bin/php /var/www/magento/bin/magento cron:run

Two-Factor Authentication для Admin (обязательно в 2.4+):

# Настройка через Google Authenticator при первом входе
# Или отключение на dev-стенде:
bin/magento module:disable Magento_TwoFactorAuth
bin/magento cache:flush

Настройка локализации

Admin > Stores > Configuration > General > General > Locale Options
  Locale: Russian (Russia)
  Timezone: Moscow Standard Time (UTC+3)
  Default Currency: Russian Ruble

Admin > Stores > Configuration > General > Currency Setup
  Base Currency: Russian Ruble
  Default Display Currency: Russian Ruble

Установка языкового пакета:

composer require mageplaza/magento-2-russian-language-pack
bin/magento setup:upgrade
bin/magento setup:static-content:deploy ru_RU

Мониторинг производительности

Инструменты диагностики:

# Статус индексеров
bin/magento indexer:status

# Проверка кеша Redis
redis-cli -n 2 INFO keyspace

# Размер таблиц — при проблемах с производительностью
mysql -u magento -p magento -e "
    SELECT table_name, ROUND(data_length/1024/1024, 2) AS 'MB'
    FROM information_schema.tables
    WHERE table_schema = 'magento'
    ORDER BY data_length DESC LIMIT 20;
"

# Очередь сообщений
bin/magento queue:consumers:list
bin/magento queue:consumers:start async.operations.all

Сроки

Установка на подготовленный сервер с базовой конфигурацией и переводом: 1–2 дня. Если включает настройку сервера с нуля, SSL, Nginx, Redis, OpenSearch, мониторинг и бэкапы: 3–5 дней. Миграция с Magento 1 или другой платформы: отдельный проект, 2–8 недель.