Как установить платформу для электронной коммерции Magento на Ubuntu 24.04

Magento – это известная платформа электронной коммерции с открытым исходным кодом, написанная на PHP. Magento – это надежное и мощное решение для электронной коммерции, используемое более чем 240.000 торговцев по всему миру. Magento – это универсальная и масштабируемая платформа для создания магазина электронной коммерции. Она подходит для создания малых, средних и крупных интернет-магазинов. Magento позволяет создавать и размещать интернет-магазины на своем сервере.

В этом руководстве мы проведем вас через установку Magento eCommerce на сервер Ubuntu 22.04.

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

Чтобы начать работу с этим руководством, убедитесь, что вы подготовили следующее:

  • Ubuntu 24.04 с памятью не менее 4 ГБ.
  • Пользователь, не являющийся пользователем root, с правами sudo.
  • Доменное имя, указывающее на IP-адрес сервера.

Установка зависимостей

Прежде чем перейти к установке, необходимо убедиться, что зависимости Magento установлены. В этом разделе вы установите пакеты программного обеспечения для Magento, которые включают OpenSearch, Nginx, сервер MySQL, PHP-FPM, Redis, Composer и Git.

Сначала установите пакет ‘apt-transport-https‘ и ‘gnupg‘ пакеты со следующими:

sudo apt install apt-transport-https gnupg -y

Выполните следующую команду, чтобы добавить ключ OpenSearch GPG и репозиторий для дистрибутивов на базе Debian/Ubuntu.

curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | \
sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | \
sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

добавить репозиторий

Теперь обновите индекс пакетов Ubuntu и установите зависимости с помощью следующей команды apt. С ее помощью вы установите пакеты OpenSearch, Nginx, MySQL, PHP-FPM, Redis, Composer и Git.

sudo apt update && sudo apt install opensearch nginx mysql-server composer git redis-server php-fpm php-bcmath php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-redis php-ldap php-zip php-curl php-imagick

Введите Y, чтобы подтвердить установку.

установить deps

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

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

sudo systemctl is-enabled nginx
sudo systemctl status nginx

проверить nginx

Теперь проверьте сервер MySQL с помощью команды ниже. В приведенном ниже выводе видно, что сервер MySQL запущен.

sudo systemctl is-enabled mysql
sudo systemctl status mysql

проверить mysql

Проверьте службу PHP-FPM с помощью следующей команды. PHP-FPM должен быть запущен и включен автоматически.

sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpm

проверить php-fpm

Проверьте сервер Redis с помощью команды ниже. Вы должны увидеть, что Redis запущен и включен.

sudo systemctl is-enabled redis-server
sudo systemctl status redis-server

проверить Redis

И наконец, проверьте версию Composer, выполнив следующие действия. В вашей системе должен быть установлен Composer версии 2.7.

sudo -u www-data composer -v

проверить composer

Настройка OpenSearch

После установки зависимостей необходимо настроить OpenSearch. Magento использует OpenSearch для расширенного поиска при=продуктов и индексации. В этом разделе вы увеличите максимальное значение памяти кучи по умолчанию и отключите плагин безопасности OpenSearch (только для среды разработки).

Откройте файл ‘/etc/opensearch/jvm.options‘, используя следующий редактор nano.

sudo nano /etc/opensearch/jvm.options

Измените распределение памяти по умолчанию для OpenSearch так, как вам нужно. В данном случае мы будем использовать 2 ГБ для OpenSearch.

-Xms2g
-Xmx2g

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

Теперь откройте стандартную конфигурацию OpenSearch ‘/etc/opensearch/opensearch.yml‘ с помощью редактора nano.

sudo nano /etc/opensearch/opensearch.yml

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

plugins.security.disabled: true

После этого сохраните и выйдите из файла.

Далее выполните приведенную ниже команду, чтобы перезагрузить менеджер systemd. После установки OpenSearch необходимо перезагрузить диспетчер systemd.

sudo systemctl daemon-reload

Теперь запустите, включите и проверьте службу Opensearch с помощью следующей команды:

sudo systemctl enable --now opensearch
sudo systemctl status opensearch

В следующем выводе видно, что OpenSearch запущен и включен.

проверка сервера opensearch

Наконец, проверьте свою установку OpenSearch, используя следующее ‘curl‘ команда. Это покажет вам основную информацию о вашей установке OpenSearch.

curl -X GET http://localhost:9200

Ниже вы можете видеть, что OpenSearch 2.14 запущен на сервере Ubuntu.

проверить opensearch

Настройка PHP-FPM

В этом разделе вы измените стандартную конфигурацию PHP-FPM и включите расширение Opcache через файл ‘php.ini’. Вы увеличите стандартное значение memory_limit и настройте дата.часовой пояс вариант.

Откройте конфигурацию PHP-FPM ‘/etc/php/8.3/fpm/php.ini’ с помощью следующего редактора nano.

sudo nano /etc/php/8.3/fpm/php.ini

Измените конфигурацию по умолчанию следующим образом. Также настройте дата.часовой пояс, и лимит_памяти с учетом текущего окружения сервера.

date.timezone = Europe/Amsterdam

После этого сохраните файл и выйдите.

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

sudo systemctl restart php8.3-fpm

Настройка сервера MySQL

Теперь, когда вы настроили PHP-FPM, в следующем разделе вы настроите установку сервера MySQL и создадите новую базу данных и пользователя для Magento.

Защитите установку сервера MySQL, выполнив следующую команду.

sudo mysql_secure_installation

Ниже вам будет задан вопрос о конфигурации сервера MySQL:

  • Введите y, чтобы включить компонент VALIDATE PASSWORD.
  • Введите 1, чтобы установить уровень надежности пароля на MEDIUM.
  • Введите y, когда вас попросят изменить пароль корня MySQL.
  • Введите y, чтобы удалить анонимного пользователя по умолчанию.
  • Введите y, чтобы запретить удаленный вход для пользователя MySQL root.
  • Введите y еще раз, чтобы удалить тест базы данных MySQL по умолчанию.
  • Наконец, введите y, чтобы перезагрузить таблицы MySQL с привилегиями для применения изменений.

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

Войдите на сервер MySQL с помощью следующей команды. Введите пароль MySQL root, когда появится запрос.

sudo mysql -u root -p

Теперь выполните следующие запросы, чтобы создать новую базу данных и пользователя для Magento. В этом примере вы создадите нового пользователя и базу данных ‘magento‘ с паролем ‘M4gentoPassw0rd__‘.

Обязательно измените следующие данные на свои. Кроме того, пароль MySQL для Magento должен содержать специальный символ, цифру и заглавную букву.

CREATE DATABASE magento;
CREATE USER 'magento'@'localhost' IDENTIFIED BY 'M4gentoPassw0rd__';
GRANT ALL PRIVILEGES ON magento.* to 'magento'@'localhost';
FLUSH PRIVILEGES;

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

Далее выполните следующий запрос, чтобы проверить привилегии пользователя ‘magento‘. Убедитесь, что ваш пользователь может получить доступ к базе данных ‘magento‘.

SHOW GRANTS FOR magento@localhost;

Наконец, введите quit, чтобы выйти из сервера MySQL.

show mysql user priv

Установка Magento через командную строку

В этом разделе вы загрузите исходный код Magento и установите PHP-зависимости с помощью Composer. Затем вы установите Magento с помощью командной строки. В завершение вы создадите кронтаб для Magento.

Перейдите в раздел ‘/var/www’ и загрузите исходный код Magento с помощью следующей команды wget. Проверьте Magento Страница GitHub и возьмите URL последней версии Magento.

cd /var/www
wget https://github.com/magento/magento2/archive/refs/tags/2.4.7.tar.gz

После завершения загрузки извлеките исходный код Magento и переименуйте извлеченную директорию в ‘magento2’. После этого ваша установка Magento должна располагаться по адресу ‘/var/www/magento2’.

tar -xf 2.4.7.tar.gz
mv magento2-* magento2

Теперь выполните приведенную ниже команду для создания дополнительных каталогов для Composer и измените право собственности на ‘/var/www’ каталог для пользователя ‘www-data‘.

sudo mkdir -p /var/www/{.config,.cache}
sudo chown -R www-data:www-data /var/www

Затем выполните следующую команду, чтобы задать ‘www-data‘ разрешение на чтение, запись и выполнение в пределах ‘/var/www/magento2‘ директория.

sudo chmod u+rwx /var/www/magento2

Далее перейдите в каталог ‘/var/www/magento2‘ каталог и установите зависимости PHP для Magento с помощью команды Composer, приведенной ниже. Это обеспечит установку зависимостей для Magento

cd /var/www/magento2
sudo -u www-data composer install

После установки зависимостей выполните приведенную ниже команду, чтобы разрешить ‘www-data‘ разрешение пользователя ‘rwx‘ для обоих ‘создано‘ и ‘var‘ каталоги в корневой части сайта Magento.

sudo chown -R www-data:www-data /var/www/magento2/var /var/www/magento2/generated
sudo chmod u+rwx /var/www/magento2/var /var/www/magento2/generated
sudo chmod g+rw /var/www/magento2/var /var/www/magento2/generated

Теперь выполните следующую команду, чтобы запустить установку Magento. Убедитесь, что вы изменили URL, базу данных MySQL, пользователя и пароль администратора для установки Magento.

sudo -u www-data bin/magento setup:install \
--base-url=http://magento.local \
--db-host=localhost \
--db-name=magento2 \
--db-user=magento \
--db-password=M4gentoPassw0rd__ \
--admin-firstname=bob \
--admin-lastname=admin \
[email protected] \
--admin-user=bob \
--admin-password=BobAdm1nP4ssword \
--currency=USD \
--timezone=Europe/Amsterdam \
--use-rewrites=1 \
--session-save=redis \
--search-engine=opensearch \
--opensearch-host=127.0.0.1 \
--opensearch-port=9200 \
--opensearch-enable-auth=0 \
--opensearch-index-prefix=magento22 \
--opensearch-timeout=30

Ниже вы можете видеть, как начинается установка Magento:

установить magento

После завершения вы увидите вывод ‘Установка Magento завершена.” и путь к URL-адресу администратора для вашей установки Magento. Не забудьте сохранить сгенерированный URL для страницы администратора Magento.

установка завершена

Чтобы завершить установку Magento, выполните следующую команду для создания кронтаба для Magento и запуска индексации для Magento.

sudo -u www-data bin/magento cron:install
sudo -u www-data bin/magento cron:run --group index

Вы можете проверить список crontab для пользователя ‘www-data’ следующим образом:

crontab -u www-data -l

Ниже вы можете видеть, что кронтаб для Magento сгенерирован.

настройка cron

Наконец, выполните приведенную ниже команду, чтобы очистить кэш вашей установки Magento. На этом установка Magento завершена, теперь вам нужно настроить веб-сервер Nginx.

sudo -u www-data bin/magento cache:clean

Настройка серверного блока Nginx

На этом установка Magento завершена, теперь вам предстоит создать новый сервер Nginx для запуска установки Magento. Убедитесь, что у вас есть доменное имя, указанное на IP-адрес вашего сервера.

Создание новой конфигурации блока сервера Nginx ‘/etc/nginx/sites-available/magento.conf‘ с помощью редактора nano.

sudo nano /etc/nginx/sites-available/magento.conf

Вставьте следующую конфигурацию и обязательно измените имя_сервера укажите доменное имя Magento.

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

server {
listen 80;
listen [::]:80;
server_name magento.local;
set $MAGE_ROOT /var/www/magento2/;
include /var/www/magento2/nginx.conf.sample;
client_max_body_size 2M;

access_log /var/log/nginx/magento.access;
error_log /var/log/nginx/magento.error;
}

После завершения сохраните и выйдите из файла.

Теперь выполните приведенную ниже команду, чтобы активировать серверный блок ‘magento.conf‘ и проверьте синтаксис вашего Nginx. Убедитесь, что вы получили вывод ‘синтаксис в порядке – проверка успешна‘.

sudo ln -s /etc/nginx/sites-available/magento.conf /etc/nginx/sites-enabled/
sudo nginx -t

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

sudo systemctl restart nginx

настройка nginx

Обеспечение безопасности Magento с помощью HTTPS

Если вы используете Magento в открытом доступе, вы должны защитить его с помощью HTTPS. В этом разделе вы защитите свою установку Magento с помощью HTTPS через Certbot и Letsencrypt.

Установите Certbot и плагин Certbot Nginx с помощью следующей команды. Введите Y, чтобы подтвердить установку.

sudo apt install certbot python3-certbot-nginx

После завершения установки выполните приведенную ниже команду, чтобы сгенерировать SSL/TLS-сертификаты от Letsencrypt. Не забудьте изменить указанные ниже адрес электронной почты и имя домена на свои данные.

sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [email protected] -d magento.local

После завершения процесса ваша установка Magento должна быть автоматически защищена HTTPS. Ваши сертификаты SSL/TLS находятся в папке ‘/etc/letsencrypt/live/domain.com‘ директория.

Доступ к Magento

Откройте веб-браузер и зайдите на доменное имя Magento, например https://magento.local. Если установка прошла успешно, вы увидите стандартную индексную страницу Magento, как показано ниже.

главная страница magneto

Теперь посетите URL-адрес администрирования Magento, который находится по адресу https://magento.local/admin_ze87mmj. Ознакомьтесь с процессом установки.

Введите пользователя и пароль администратора Magento и нажмите Login.

вход в систему magento

В случае успеха вы должны получить панель администрирования Magento, как показано ниже:

панель управления magento

Заключение

Поздравляем! Вы завершили установку Magento eCommerce на сервер Ubuntu 24.04. Вы установили Magento со стеком LEMP (Linux, Nginx, MySQL и PHP-FPM), OpenSearch и Redis. Вы также обеспечили безопасность Magento с помощью HTTPS через Certbot и Letsencrypt.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *