Magento установка · 19 min read · Oct 20, 2025
Как установить Magento eCommerce на Ubuntu 22.04 с Nginx и Elasticsearch

Magento — это платформа электронной коммерции с открытым исходным кодом, написанная на PHP. Она была приобретена Adobe в 2018 году и была названа Adobe eCommerce. Она также предлагается как коммерческий и облачный продукт. Вы можете использовать Magento для создания профессиональных интернет-магазинов с высокой пропускной способностью. Она предлагает как режим одного магазина, так и режим нескольких магазинов. В ней есть множество модулей для расширения функциональности.
В этом руководстве мы установим открытое сообщество Magento. Оно предлагает все функции, необходимые для настройки профессионального интернет-магазина. Мы также установим Elasticsearch для поиска по каталогу продуктов, Redis для кэширования сессий и файлов и будем обслуживать его с помощью сервера Nginx.
Предварительные требования
- Сервер с установленной Ubuntu 22.04 с минимум 2 ГБ ОЗУ. Вам может понадобиться больше ОЗУ в зависимости от ваших требований.
- Непривилегированный пользователь с правами sudo.
- Полностью квалифицированное доменное имя (FQDN) для сервера,
magento.example.com - Убедитесь, что все обновлено.
$ sudo apt update $ sudo apt upgrade - Несколько пакетов, необходимых вашей системе.
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-keyring unzip -yНекоторые из этих пакетов могут уже быть установлены на вашей системе.
Шаг 1 - Настройка брандмауэра
Первый шаг — настроить брандмауэр. Ubuntu по умолчанию поставляется с ufw (Uncomplicated Firewall).
Проверьте, работает ли брандмауэр.
$ sudo ufw status
Вы должны получить следующий вывод.
Status: inactive
Разрешите SSH-порт, чтобы брандмауэр не разорвал текущее соединение при его включении.
$ sudo ufw allow OpenSSH
Разрешите также порты HTTP и HTTPS.
$ sudo ufw allow http
$ sudo ufw allow https
Включите брандмауэр
$ sudo ufw enable
Команда может нарушить существующие ssh-соединения. Продолжить операцию (y|n)? y
Брандмауэр активен и включен при запуске системы
Проверьте статус брандмауэра снова.
$ sudo ufw status
Вы должны увидеть аналогичный вывод.
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Шаг 2 - Установка PHP и его расширений
Ubuntu 22.04 поставляется с версией PHP 8.1.2, которая немного устарела. Мы установим последнюю версию PHP 8.2 с помощью репозитория PHP от Ondrej.
$ sudo add-apt-repository ppa:ondrej/php
Далее установите PHP и его расширения, необходимые для Magento.
$ sudo apt install php8.2-fpm php8.2-mysql php8.2-bcmath php8.2-xml php8.2-zip php8.2-curl php8.2-mbstring php8.2-gd php8.2-tidy php8.2-intl php8.2-cli php8.2-soap php8.2-xsl libsodium-dev libsodium23 libssl-dev libcurl14-openssl-dev
Проверьте установку.
$ php --version
PHP 8.2.5 (cli) (built: Apr 14 2023 04:27:02) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.5, Copyright (c) Zend Technologies
with Zend OPcache v8.2.5, Copyright (c), by Zend Technologies
Шаг 3 - Установка Composer
Composer — это инструмент управления зависимостями для PHP и необходим для установки Magento.
Запустите следующие команды, чтобы загрузить бинарный файл Composer. Magento требует Composer 2.2 LTS, поэтому мы изменили команду соответственно.
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php --2.2
$ php -r "unlink('composer-setup.php');"
Установите Composer, переместив бинарный файл в директорию /usr/local/bin.
$ sudo mv composer.phar /usr/local/bin/composer
Проверьте установку, проверив его версию.
$ composer --version
Composer version 2.2.21 2023-02-15 13:07:40
Шаг 4 - Установка MySQL
Ubuntu 22.04 поставляется с последней версией MySQL. Вы можете установить его одной командой.
$ sudo apt install mysql-server
Проверьте версию MySQL.
$ mysql --version
mysql Ver 8.0.33-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
Этот шаг необходим для версий MySQL 8.0.28 и выше. Войдите в оболочку MySQL.
$ sudo mysql
Запустите следующую команду, чтобы установить пароль для вашего пользователя root. Убедитесь, что он содержит смесь цифр, заглавных и строчных букв, а также специальных символов.
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';
Выйдите из оболочки.
mysql> exit
Запустите скрипт безопасной установки MySQL.
$ sudo mysql_secure_installation
Сначала вас попросят ввести ваш пароль root. Введите его. Затем вас спросят, хотите ли вы установить компонент Validate Password. Он проверяет надежность паролей, используемых в MySQL. Нажмите Y, чтобы установить его. Затем вас спросят, какой уровень политики проверки пароля вы хотите установить. Выберите 2, так как это самый строгий.
Securing the MySQL server deployment.
Enter password for user root:
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Using existing password for root.
Estimated strength of the password: 100
Затем введите N, чтобы отказаться от изменения пароля root. Также введите Y, чтобы удалить анонимных пользователей, запретить удаленный вход root, удалить тестовую базу данных и перезагрузить таблицы привилегий.
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N
... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.
Remove anonymous users? (Press y|Y for Yes, any other key for No) : Y
Success.
Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : Y
Success.
By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : Y
- Dropping test database...
Success.
- Removing privileges on test database...
Success.
Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : Y
Success.
All done!
Шаг 5 - Настройка MySQL
Войдите в оболочку MySQL. Введите свой пароль root, когда вас попросят.
$ sudo mysql -u root -p
Создайте базу данных для Magento.
mysql> CREATE DATABASE magento;
Создайте учетную запись SQL пользователя.
mysql> CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Your_password2';
Предоставьте все привилегии на базу данных пользователю.
mysql> GRANT ALL PRIVILEGES ON magento.* TO 'magentouser'@'localhost';
Обновите привилегии пользователей.
mysql> FLUSH PRIVILEGES;
Выйдите из оболочки.
mysql> exit
Шаг 6 - Установка Nginx
Ubuntu 22.04 поставляется со старой версией Nginx. Чтобы установить последнюю версию, вам нужно загрузить официальный репозиторий Nginx.
Импортируйте ключ подписи Nginx.
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Добавьте репозиторий для стабильной версии Nginx.
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Обновите системные репозитории.
$ sudo apt update
Установите Nginx.
$ sudo apt install nginx
Проверьте установку.
$ nginx -v
nginx version: nginx/1.24.0
Запустите сервер Nginx.
$ sudo systemctl start nginx
Шаг 7 - Установка SSL
Нам нужно установить Certbot для генерации SSL-сертификата. Вы можете установить Certbot с помощью репозитория Ubuntu или загрузить последнюю версию с помощью инструмента Snapd. Мы будем использовать версию Snapd.
Ubuntu 22.04 поставляется с установленным Snapd по умолчанию. Запустите следующие команды, чтобы убедиться, что ваша версия Snapd обновлена.
$ sudo snap install core && sudo snap refresh core
Установите Certbot.
$ sudo snap install --classic certbot
Используйте следующую команду, чтобы убедиться, что команду Certbot можно запустить, создав символическую ссылку на директорию /usr/bin.
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Запустите следующую команду, чтобы сгенерировать SSL-сертификат.
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d magento.example.com
Вышеуказанная команда загрузит сертификат в директорию /etc/letsencrypt/live/magento.example.com на вашем сервере.
Сгенерируйте сертификат группы Диффи-Хеллмана.
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Проверьте службу планировщика обновления Certbot.
$ sudo systemctl list-timers
Вы найдете snap.certbot.renew.service как одну из запланированных служб.
NEXT LEFT LAST PASSED UNIT ACTIVATES
.....
Sun 2023-02-26 06:32:00 UTC 9h left Sat 2023-02-25 18:04:05 UTC 2h 59min ago snap.certbot.renew.timer snap.certbot.renew.service
Sun 2023-02-26 06:43:20 UTC 9h left Sat 2023-02-25 10:49:23 UTC 10h ago apt-daily-upgrade.timer apt-daily-upgrade.service
Sun 2023-02-26 09:00:06 UTC 11h left Sat 2023-02-25 20:58:06 UTC 5min ago apt-daily.timer apt-daily.service
Сделайте пробный запуск процесса, чтобы проверить, работает ли обновление SSL.
$ sudo certbot renew --dry-run
Если вы не видите ошибок, вы готовы. Ваш сертификат будет автоматически обновляться.
Шаг 8 - Установка Elasticsearch
Elasticsearch используется Magento для поиска продуктов. Мы установим Elasticsearch 7.x, используя его официальный репозиторий, так как это версия, совместимая с Magento.
Импортируйте GPG-ключ Elasticsearch.
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Добавьте репозиторий Elasticsearch.
$ echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
Обновите список репозиториев системы.
$ sudo apt update
Установите Elasticsearch.
$ sudo apt install elasticsearch
Elasticsearch использует много памяти. Вам нужно ограничить его использование в зависимости от размера вашего сервера. Создайте файл /etc/elasticsearch/jvm.options.d/memory.options и откройте его для редактирования.
$ sudo nano /etc/elasticsearch/jvm.options.d/memory.options
Вставьте в него следующий код.
-Xms1g
-Xmx1g
Сохраните файл, нажав Ctrl + X и введя Y, когда вас попросят. Это настраивает Elasticsearch на использование 1 ГБ ОЗУ. Вы можете использовать любое значение по мере необходимости.
Запустите и включите службу.
$ sudo systemctl enable elasticsearch --now
Проверьте, работает ли Elasticsearch.
$ curl http://localhost:9200
Вы должны увидеть следующий вывод.
{
"name" : "magento",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "6yks8tZ6T4GskIwWoXuSLA",
"version" : {
"number" : "7.17.10",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "fecd68e3150eda0c307ab9a9d7557f5d5fd71349",
"build_date" : "2023-04-23T05:33:18.138275597Z",
"build_snapshot" : false,
"lucene_version" : "8.11.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Шаг 9 - Установка сервера Redis
Magento использует Redis для хранения сессий и кэша. Это совершенно необязательно, и вы можете использовать базу данных для хранения сессий. Но Redis справляется с этой задачей лучше. Последняя версия Magento работает с Redis 7.0. Ubuntu поставляется с Redis 6.0, поэтому мы будем использовать репозиторий Redis для установки.
Импортируйте официальный GPG-ключ Redis.
$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
Добавьте репозиторий APT в ваш список источников.
$ echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
Обновите список репозиториев системы.
$ sudo apt update
Выполните следующую команду для установки сервера Redis.
$ sudo apt install redis
Подтвердите версию Redis.
$ redis-server -v
Redis server v=7.0.11 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=3af367a78d5e21e9
Давайте проверим соединение службы, используя следующую команду.
$ redis-cli
Вы перейдете в оболочку Redis.
Первый шаг — установить пароль для пользователя по умолчанию Redis. Замените Your_Redis_Password на надежный пароль по вашему выбору. Убедитесь, что вы добавили к паролю префикс >.
127.0.0.1:6379> acl setuser default >Your_Redis_Password
Проверьте аутентификацию Redis.
127.0.0.1:6379> AUTH Your_Redis_Password
OK
Пинг службы.
127.0.0.1:6379> ping
PONG
Выйдите из службы, набрав exit.
Шаг 10 - Загрузка Magento
Создайте корневую директорию для Magento.
$ sudo mkdir /var/www/magento -p
Предоставьте права на директорию Magento текущему пользователю.
$ sudo chown $USER:$USER /var/www/magento/ -R
Перейдите в директорию /var/www.
$ cd /var/www
Прежде чем мы продолжим, вам понадобятся ключи аутентификации, необходимые для репозитория Magento. Посетите сайт https://account.magento.com/, и вы увидите следующую страницу, на которой вам будет предложено войти с помощью вашего Adobe ID.

Нажмите кнопку Войти с Adobe ID, чтобы перейти на следующую страницу.

Если у вас есть Adobe ID, введите свои учетные данные, чтобы продолжить, или вы можете создать учетную запись здесь. После создания учетной записи и входа откройте URL https://marketplace.magento.com/customer/accessKeys/. Вы также можете получить доступ к этой странице, посетив свой профиль и нажав на ссылку Access Keys.

Нажмите кнопку Создать новый ключ доступа, чтобы создать свой ключ аутентификации. Дайте своему ключу имя для идентификации.

Запишите как публичный, так и приватный ключи для следующего шага.
Создайте проект Magento.
$ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento
Вам будет предложено ввести имя пользователя и пароль для репозитория. Используйте публичный ключ в качестве имени пользователя и приватный ключ в качестве пароля. Вам будет предложено сохранить учетные данные в каталоге конфигурации Composer. Введите y, чтобы сделать это.
Creating a "magento/project-community-edition" project at "./magento"
Authentication required (repo.magento.com):
Username: 53211xxxxxxxxxxxxxxxxxxxxxxxxxxx
Password:
Do you want to store credentials for repo.magento.com in /home/navjot/.config/composer/auth.json ? [Yn] y
Installing magento/project-community-edition (2.4.6)
- Downloading magento/project-community-edition (2.4.6)
- Installing magento/project-community-edition (2.4.6): Extracting archive
Created project in /var/www/magento
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 564 installs, 0 updates, 0 removals
- Locking 2tvenom/cborencode (1.0.2)
- Locking adobe-commerce/adobe-ims-metapackage (2.2.0)
...............................................
Запустите следующие команды, чтобы установить права на файлы и сделать бинарный файл Magento исполняемым. Также установите владельца директории Magento на пользователя Nginx, чтобы он мог получить доступ к веб-сайту.
$ cd /var/www/magento/
$ sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R :nginx .
$ sudo chmod u+x bin/magento
Шаг 11 - Установка Magento
Убедитесь, что вы находитесь в директории Magento.
$ cd /var/www/magento
Запустите следующую команду для установки Magento.
$ bin/magento setup:install \
--base-url=http://magento.example.com \
--use-secure=1 \
--base-url-secure=https://magento.example.com \
--use-secure-admin=1 \
--db-host=localhost \
--db-name=magento \
--db-user=magentouser \
--db-password=Your_password2 \
--admin-firstname=Navjot \
--admin-lastname=Singh \
[email protected] \
--admin-user=navjot \
--admin-password=admin_password \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1 \
--elasticsearch-host=http://127.0.0.1 \
--elasticsearch-port=9200 \
--session-save=redis \
--session-save-redis-db=0 \
--session-save-redis-password=redis_password \
--cache-backend=redis \
--cache-backend-redis-db=2 \
--cache-backend-redis-password=redis_password \
--page-cache=redis \
--page-cache-redis-db=4 \
--page-cache-redis-password=redis_password
После завершения процесса вы получите аналогичный вывод.
.......
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_19uadb
Nothing to import.
Запишите URI администратора, который вам понадобится позже для доступа к панели управления.
Создайте задания cron для Magento.
$ php bin/magento cron:install
Проверьте задание cron.
$ crontab -l
Вы должны увидеть следующий вывод.
#~ MAGENTO START d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c
* * * * * /usr/bin/php8.2 /var/www/magento/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/magento/var/log/magento.cron.log
#~ MAGENTO END d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c
Шаг 12 - Настройка PHP-FPM
Откройте файл /etc/php/8.2/fpm/pool.d/www.conf.
$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf
Нам нужно установить Unix пользователя/группу процессов PHP на nginx. Найдите строки user=www-data и group=www-data в файле и измените их на nginx.
...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
group = nginx
...
Найдите строки listen.owner = www-data и listen.group = www-data в файле и измените их на nginx.
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
; mode is set to 0660
listen.owner = nginx
listen.group = nginx
Сохраните файл, нажав Ctrl + X и введя Y, когда вас попросят.
Увеличьте время выполнения для PHP-FPM и PHP-CLI до 180 секунд.
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/cli/php.ini
Увеличьте лимит памяти для PHP-FPM с 128MB до 256MB. Вы можете увеличить лимит в зависимости от размера вашего сервера и требований.
$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini
Magento по умолчанию устанавливает лимит размера файла для медиатеки в 2MB. Запустите следующие команды, чтобы увеличить лимит размера файла до 25MB.
$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 25M/g' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php/8.2/fpm/php.ini
Включите сжатие Zlib.
$ sudo sed -i 's/zlib.output_compression = Off/zlib.output_compression = On/g' /etc/php/8.2/fpm/php.ini
Перезапустите службу PHP-FPM.
$ sudo systemctl restart php8.2-fpm
Измените группу директории сессий PHP на Nginx.
$ sudo chgrp -R nginx /var/lib/php/sessions
Шаг 13 - Настройка Nginx
Откройте файл /etc/nginx/nginx.conf для редактирования.
$ sudo nano /etc/nginx/nginx.conf
Добавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.
server_names_hash_bucket_size 64;
Сохраните файл, нажав Ctrl + X и введя Y, когда вас попросят.
Создайте и откройте файл /etc/nginx/conf.d/magento.conf для редактирования.
$ sudo nano /etc/nginx/conf.d/magento.conf
Вставьте в него следующий код.
upstream fastcgi_backend {
server unix:/run/php/php8.2-fpm.sock;
}
server {
# Redirect any http requests to https
listen 80;
listen [::]:80;
server_name magento.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name magento.example.com;
set $MAGE_ROOT /var/www/magento;
include /var/www/magento/nginx.conf.sample;
client_max_body_size 25m;
access_log /var/log/nginx/magento.access.log;
error_log /var/log/nginx/magento.error.log;
# TLS configuration
ssl_certificate /etc/letsencrypt/live/magento.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/magento.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/magento.example.com/chain.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;
# OCSP Stapling ---
# fetch OCSP records from URL in ssl_certificate and cache them
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
}
Сохраните файл, нажав Ctrl + X и введя Y, когда вас попросят, когда закончите.
Magento поставляется с шаблоном конфигурации Nginx в /var/www/magento/nginx.conf.sample, который мы включили в нашу конфигурацию. Переменная $MAGE_ROOT указывает на корневую директорию веб-сайта Magento, которую мы установили в нашем файле и используем в образце конфигурационного файла.
Проверьте синтаксис конфигурационного файла Nginx.
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Перезапустите службу Nginx.
$ sudo systemctl restart nginx
Откройте веб-сайт Magento по URL https://magento.example.com. Вы должны увидеть следующую страницу.

Если CSS и JS не загружаются, выполните следующие команды.
$ cd /var/www/magento
$ php bin/magento setup:static-content:deploy -f
$ php bin/magento indexer:reindex
Шаг 14 - Отключение двухфакторной аутентификации
Перед доступом к панели управления нам нужно отключить двухфакторную аутентификацию, которая включена по умолчанию. Magento пытается отправить почту через sendmail для включения двухфакторной аутентификации во время установки, но поскольку мы этого не настроили, единственный способ получить доступ к панели управления — сначала отключить эту функцию.
Если у вас настроен sendmail на вашем сервере для отправки электронной почты, вы можете пропустить этот шаг. Чтобы отключить двухфакторную аутентификацию, нам нужно отключить два модуля Magento с помощью следующих команд.
$ php /var/www/magento/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:disable Magento_TwoFactorAuth
Запустите следующую команду, чтобы создать классы.
$ php /var/www/magento/bin/magento setup:di:compile
Очистите кэш также.
$ php /var/www/magento/bin/magento c:c
Шаг 15 - Доступ к порталу администратора
Вам нужно будет открыть портал администратора, используя URI, который предоставил вам скрипт установки Magento. Если вы как-то забыли его записать или потеряли, вы можете снова получить URI, используя следующую команду.
$ php /var/www/magento/bin/magento info:adminuri
Admin URI: /admin_19uadb
Откройте URL https://magento.example.com/admin_19uadb в вашем браузере, и вы увидите следующий экран.

Введите свои учетные данные администратора, предоставленные во время установки, и нажмите кнопку Войти, чтобы продолжить. Вы увидите следующий экран.

Вы получите всплывающее окно с просьбой разрешить Adobe собирать данные об использовании. Нажмите кнопку Не разрешать, чтобы продолжить.
Следующий шаг — настроить SMTP для электронной почты, чтобы мы могли снова включить двухфакторную аутентификацию. Перейдите в меню Магазины >> Конфигурация.

Разверните меню Расширенные с левой стороны и нажмите опцию Системы, чтобы открыть страницу настроек электронной почты.

Снимите отметку с Использовать системное значение перед опциями Транспорт, Хост и Порт. Нажмите выпадающее меню для Транспорта и выберите SMTP из него. Для нашего руководства мы используем Amazon SES в качестве почтового отправителя.

Введите свой SMTP-хост, 587 в качестве порта, имя пользователя и пароль, установите Auth на LOGIN и установите SSL на TLS в указанных полях. Нажмите кнопку Сохранить конфигурацию, когда закончите. Теперь, когда мы настроили параметры электронной почты, следующий шаг — настроить адреса электронной почты магазина, чтобы мы могли их протестировать.
Прокрутите вверх и разверните меню Общие на той же странице и выберите опцию Адреса электронной почты магазина.

Снимите отметку с полей электронной почты отправителя по умолчанию и введите адреса электронной почты вашего магазина. Нажмите кнопку Сохранить конфигурацию, когда закончите. Аналогично откройте экран Контакты и внесите те же изменения, затем нажмите кнопку Сохранить конфигурацию, чтобы завершить.

Изменение параметров администратора может повлиять на кэш, и вы получите предупреждение. Выполните следующую команду, чтобы очистить кэш вручную.
$ php /var/www/magento/bin/magento c:c
Чтобы протестировать электронные письма, посетите страницу магазина и откройте страницу Связаться с нами. Вы можете использовать URL https://magento.example.com/contact/, чтобы получить к ней доступ напрямую. Отправьте тестовое сообщение и нажмите кнопку Отправить. Вы должны получить аналогичное письмо.

Шаг 16 - Включение и настройка двухфакторной аутентификации
Теперь, когда мы включили почтовый отправитель SMTP, пришло время снова включить двухфакторную аутентификацию. Выполните следующие команды, чтобы включить двухфакторную аутентификацию.
$ php /var/www/magento/bin/magento module:enable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:enable Magento_TwoFactorAuth
Обновите установку для модулей.
$ php /var/www/magento/bin/magento setup:upgrade
Запустите следующую команду, чтобы создать классы.
$ php /var/www/magento/bin/magento setup:di:compile
Очистите кэш также.
$ php /var/www/magento/bin/magento c:c
Если вы не можете получить доступ к администраторской области, выполните следующие команды.
Принудительно разверните статическое содержимое.
$ php /var/www/magento/bin/magento setup:static-content:Deploy -f
Установите права на файлы.
$ cd /var/www/magento
$ sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R :nginx .
Посетите портал администратора, и вы увидите следующий экран.

Мы будем использовать метод Google Authenticator. Вы можете использовать аппаратный ключ, если он у вас есть. Метод Google Authenticator работает с любым приложением TOTP, включая Authy, 1Password, Bitwarden, Microsoft Authenticator и т. д. Нажмите кнопку Применить, чтобы продолжить.

На следующей странице вы получите QR-код для сканирования с помощью вашего приложения 2FA. Введите данные в ваше приложение и скопируйте сгенерированный код в поле Код аутентификатора. Нажмите кнопку Подтвердить, чтобы перейти к панели администратора.
Заключение
Это завершает наше руководство по установке сайта Magento eCommerce на сервере Ubuntu 22.04 с сервером Nginx и Elasticsearch. Если у вас есть какие-либо вопросы, оставляйте их в комментариях ниже.
Get new posts in your inbox
No spam. Unsubscribe anytime.