Встановлення та налаштування 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="en_US" \
    --currency="USD" \
    --timezone="UTC" \
    --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 режим — скомпільований DI, мініфіцированний JS/CSS
bin/magento deploy:mode:set production

# Developer режим — для розробки (без кешу, перекомпілює на льету)
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: English (United States)
  Timezone: UTC
  Default Currency: US Dollar

Admin > Stores > Configuration > General > Currency Setup
  Base Currency: US Dollar
  Default Display Currency: US Dollar

Встановлення мовного пакету:

composer require magento/language-en_us
bin/magento setup:upgrade
bin/magento setup:static-content:deploy en_US

Моніторинг продуктивності

Інструменти діагностики:

# Статус індексаторів
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 тижнів.