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, чтобы подтвердить установку.
После установки проверьте все службы, чтобы убедиться, что они запущены.
Проверьте службу Nginx, выполнив следующие действия. Вы увидите, что служба Nginx запущена и включена.
sudo systemctl is-enabled nginx sudo systemctl status nginx
Теперь проверьте сервер MySQL с помощью команды ниже. В приведенном ниже выводе видно, что сервер MySQL запущен.
sudo systemctl is-enabled mysql sudo systemctl status mysql
Проверьте службу PHP-FPM с помощью следующей команды. PHP-FPM должен быть запущен и включен автоматически.
sudo systemctl is-enabled php8.3-fpm sudo systemctl status php8.3-fpm
Проверьте сервер Redis с помощью команды ниже. Вы должны увидеть, что Redis запущен и включен.
sudo systemctl is-enabled redis-server sudo systemctl status redis-server
И наконец, проверьте версию Composer, выполнив следующие действия. В вашей системе должен быть установлен Composer версии 2.7.
sudo -u www-data composer -v
Настройка 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, используя следующее ‘curl‘ команда. Это покажет вам основную информацию о вашей установке OpenSearch.
curl -X GET http://localhost:9200
Ниже вы можете видеть, что OpenSearch 2.14 запущен на сервере Ubuntu.
Настройка 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.
Установка 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 завершена.” и путь к 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 сгенерирован.
Наконец, выполните приведенную ниже команду, чтобы очистить кэш вашей установки 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
Обеспечение безопасности 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, как показано ниже.
Теперь посетите URL-адрес администрирования Magento, который находится по адресу https://magento.local/admin_ze87mmj. Ознакомьтесь с процессом установки.
Введите пользователя и пароль администратора Magento и нажмите Login.
В случае успеха вы должны получить панель администрирования Magento, как показано ниже:
Заключение
Поздравляем! Вы завершили установку Magento eCommerce на сервер Ubuntu 24.04. Вы установили Magento со стеком LEMP (Linux, Nginx, MySQL и PHP-FPM), OpenSearch и Redis. Вы также обеспечили безопасность Magento с помощью HTTPS через Certbot и Letsencrypt.