Magento – платформа электронной коммерции с открытым исходным кодом, построенная на PHP. Это ведущий игрок в мире электронной коммерции. Adobe приобрела компанию в 2018 году. Magento разработан, чтобы помочь компаниям развиваться, его версии ориентированы на организации малого, среднего и корпоративного уровня. Платформа с открытым исходным кодом включает встроенные функциональные возможности, такие как интегрированное оформление заказа, оплата и доставка, управление каталогом, учетные записи клиентов и т.д. В этой статье показано, как установить Magento 2 на Ubuntu 24.04.
# – данные команды должны выполняться с правами root либо непосредственно от имени пользователя root, либо с помощью команды sudo $ – данные команды должны выполняться от имени обычного пользователя
Сначала войдите на свой сервер Ubuntu 24.04 через SSH как пользователь root:
ssh root@IP_Address -p Port_number
Вы должны заменить ‘IP_Address‘ и ‘Port_number‘ на соответствующий IP-адрес вашего сервера и номер порта SSH. Кроме того, замените ‘root’ именем системного пользователя с правами sudo.
Вы можете проверить, установлена ли у вас на сервере соответствующая версия Ubuntu, с помощью следующей команды:
# lsb_release -a
Вы должны получить этот результат:
No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu Noble Numbat Release: 24.04 Codename: noble
Magento будет запускаться новым системным пользователем с именем magento. Давайте сейчас создадим нового системного пользователя, выполним эту команду ниже.
/usr/sbin/adduser \ --system \ --shell /bin/bash \ --gecos 'Magento user' \ --group \ --home /opt/magento \ magento
Затем давайте дадим новому пользователю пароль.
# passwd magento
Вам будет предложено ввести пароль для пользователя ‘magento’ дважды, пароль не будет отображаться на вашем экране. После этого мы можем предоставить новому пользователю привилегии sudo.
# usermod -aG sudo magento
Теперь давайте переключимся на нового пользователя. С этого момента команды будет выполнять новый пользователь.
# su - magento
Ubuntu 24.04 поставляется с PHP 8.3, и на данный момент только Magento 2.4.7-beta3 поддерживает эту версию PHP. Давайте установим PHP 8.3 и его расширения.
$ sudo apt install php-{bcmath,common,curl,fpm,gd,intl,mbstring,mysql,soap,xml,xsl,zip,cli}
Далее нам нужно изменить следующие настройки в файле php.ini:
Увеличьте memory_limit до 512 МБ
Установите short_open_tag равным On
Установите upload_max_filesize равным 128 МБ
Увеличьте max_execution_time до 3600
Давайте внесем изменения, выполнив эти команды
$ sudo sed -i "s/memory_limit = .*/memory_limit = 512M/" /etc/php/8.3/fpm/php.ini $ sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 128M/" /etc/php/8.3/fpm/php.ini $ sudo sed -i "s/short_open_tag = .*/short_open_tag = On/" /etc/php/8.3/fpm/php.ini $ sudo sed -i "s/max_execution_time = .*/max_execution_time = 3600/" /etc/php/8.3/fpm/php.ini
Затем давайте создадим пул PHP-FPM.
$ sudo nano /etc/php/8.3/fpm/pool.d/magento.conf
Нам нужно вставить в файл следующее.
user = magento group = magento listen = /run/php/magento.sock listen.owner = magento listen.group = magento pm = ondemand pm.max_children = 50 pm.start_servers = 10 pm.min_spare_servers = 5 pm.max_spare_servers = 10
Сохраните файл, а затем выйдите из редактора файлов и не забудьте перезапустить php-службу fpm
$ sudo systemctl restart php8.3-fpm
В этой статье мы будем использовать Nginx в качестве веб-сервера. Давайте установим его сейчас.
$ sudo apt install nginx -y
Затем нам нужно создать серверный блок nginx для нашего веб-сайта Magento.
$ sudo nano /etc/nginx/sites-enabled/magento.conf
Вставьте следующее в файл конфигурации.
upstream fastcgi_backend { server unix:/run/php/magento.sock; } server { server_name yourdomain.com; listen 80; set $MAGE_ROOT /opt/magento/website; set $MAGE_MODE production; access_log /var/log/nginx/magento-access.log; error_log /var/log/nginx/magento-error.log; include /opt/magento/website/nginx.conf.sample; }
Сохраните файл, затем выйдите.
Magento теперь поддерживает OpenSearch в качестве альтернативы Elasticsearch. На этом шаге мы установим OpenSearch и изменим его настройки. Давайте выполним приведенные ниже команды, чтобы продолжить.
$ sudo apt install curl gnupg2
$ 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
$ sudo apt update
С добавлением информации о репозитории мы можем перечислить все доступные версии OpenSearch:
$ sudo apt list -a opensearch
Команда вернет этот вывод:
magento@ubuntu24:~$ sudo apt list -a opensearch Listing… Done opensearch/stable,now 2.12.0 amd64 [residual-config] opensearch/stable 2.11.1 amd64 [residual-config] opensearch/stable 2.11.0 amd64 [residual-config] opensearch/stable 2.10.0 amd64 [residual-config] opensearch/stable 2.9.0 amd64 [residual-config] opensearch/stable 2.8.0 amd64 [residual-config] opensearch/stable 2.7.0 amd64 [residual-config] opensearch/stable 2.6.0 amd64 [residual-config] opensearch/stable 2.5.0 amd64 [residual-config]
Теперь давайте установим OpenSearch 2.11.1, выполнив эту команду ниже
$ sudo apt install opensearch=2.11.1
По умолчанию OpenSearch использует SSL, но Magento его не использует. Итак, нам нужно отключить плагин SSL в OpenSearch для успешной установки Magento:
$ sudo nano /etc/opensearch/opensearch.yml
И добавить это в конец yml-файла:
plugins.security.disabled: true
Сохраните файл, затем выйдите, и, наконец, мы можем включить службу и запустить ее прямо сейчас.
$ sudo systemctl enable --now opensearch
Как только он будет запущен, мы можем запустить эту команду для проверки.
$ curl -X GET localhost:9200
Команда вернет результат, аналогичный этому:
{ "name" : "ubuntu24.andreyex.ru", "cluster_name" : "opensearch", "cluster_uuid" : "zYOQTFzMQxmhhP29-u9eHA", "version" : { "distribution" : "opensearch", "number" : "2.11.1", "build_type" : "deb", "build_hash" : "6b1986e964d440be9137eba1413015c31c5a7752", "build_date" : "2023-11-29T21:43:44.221253956Z", "build_snapshot" : false, "lucene_version" : "9.7.0", "minimum_wire_compatibility_version" : "7.10.0", "minimum_index_compatibility_version" : "7.0.0" }, "tagline" : "The OpenSearch Project: https://opensearch.org/" }
Ubuntu 24.04 поставляется с MySQL 8.0 и MariaDB 10.11. На момент написания этой статьи Magento поддерживает только MariaDB версии 10.6 и ниже. Итак, нам нужно установить сервер MySQL вместо MariaDB. Если вы установите MariaDB 10.11, то при установке Magento вы получите сообщение, подобное этому:
Current version of RDBMS is not supported. Used Version: 10.11.6-MariaDB-2. Supported versions: MySQL-8, MySQL-5.7, MariaDB-(10.2-10.6)
$ sudo apt install mysql-server
После установки мы можем создать новую базу данных и ее пользователя для нашего веб-сайта Magento.
$ sudo mysql
mysql> CREATE USER 'magento'@'localhost' IDENTIFIED BY 'm0d1fyth15'; mysql> CREATE DATABASE magentodb; mysql> GRANT ALL PRIVILEGES ON magentodb.* TO 'magento'@'localhost'; mysql> FLUSH PRIVILEGES; mysql> \q
На этом шаге мы собираемся установить Composer. Установка довольно проста.
$ curl -sS https://getcomposer.org/installer -o composer-setup.php $ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Вот и все. Чтобы проверить версию установленного Composer, вы можете запустить эту команду:
$ composer -V
Перейдите на официальный веб-сайт Magento и создайте учетную запись или войдите в систему, если она у вас уже есть. Пожалуйста, обратите внимание, что, согласно их веб-сайту, на данный момент мы можем установить Magento 2.4.7-beta3 только на Ubuntu 24.04.
$ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.7-beta3 /opt/magento/website
После того, как все необходимые файлы будут загружены, мы можем установить их, выполнив эту команду ниже.
$ cd /opt/magento/website
$ bin/magento setup:install \ --base-url=http://yourdomain.com \ --db-host=localhost \ --db-name=magentodb \ --db-user=magento \ --db-password=m0d1fyth15 \ --admin-firstname=Magento \ --admin-lastname=Admin \ --admin-email=admin@yourdomain.com \ --admin-user=admin \ --admin-password=m0d1fyth15 \ --language=en_US \ --currency=USD \ --timezone=America/Chicago \ --use-rewrites=1 \ --search-engine=opensearch
В конце установки вы увидите результат, аналогичный этому:
[SUCCESS]: Magento installation complete. [SUCCESS]: Magento Admin URI: /admin_0ty6lcq Nothing to import.
Перед входом в серверную часть мы можем сначала отключить двухфакторную аутентификацию, а позже включить ее снова. Нам нужно выполнить эти команды, чтобы отключить модули 2FA.
$ php bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth $ php bin/magento module:disable Magento_TwoFactorAuth $ php bin/magento setup:di:compile $ php bin/magento cache:clean
На этом этапе Magento установлен, и мы можем перейти к серверной части по адресу http://yourdomain.com/admin_0ty6lcq используя наш любимый веб-браузер. Пожалуйста, обратите внимание, что для доступа к серверной части вы должны использовать свою собственную ссылку.
После входа в систему мы можем увидеть панель управления Magento.
Magento требует запуска заданий cron для автоматизации важных системных функций. Давайте выполним приведенную ниже команду для создания cronjobs Magento в пользовательском magento.
$ php bin/magento cron:install
Поздравляем! Вы успешно установили Magento на Ubuntu 24.04.
PS. Если вам понравился этот пост, пожалуйста, поделитесь им со своими друзьями в социальных сетях или оставьте комментарий в разделе комментариев. Спасибо.