Magento 2 - ведущая платформа электронной коммерции корпоративного класса, построенная на технологии с открытым исходным кодом, сочетающая мощные функции с гибкостью и удобным интерфейсом.
Magento - это платформа, которую предпочитают большинство онлайн-продавцов, благодаря таким функциям, как «Привлечение покупок», «Гибкая модульная архитектура», масштабируемость и производительность корпоративного уровня. В этом руководстве я покажу вам, как установить Magento 2 на машину с Ubuntu или Linux mint 20.
Обновите системные пакеты до последних версий и установите утилиту unzip:
sudo apt update && sudo apt upgrade sudo apt install unzip
Установка и создание базы данных MySQL
#Установим mysql engine/client sudo apt install mysql-server #Проверим версию. mysql -V
Входим в оболочку MySQL, используя следующую команду:
sudo mysql
Создадим базу
#create a new database CREATE DATABASE magento2;
Создадим пользователя базы
CREATE USER 'YouUser'@'localhost' IDENTIFIED BY 'YouPassword'; GRANT ALL ON *.* TO 'YouUser'@'localhost'; FLUSH PRIVILEGES; #Посмотрим все базы: show databases;
Выходим с mysql>
#выход: exit;
Установим php и apache2
#Install php ( version 7.4 on latest ubuntu(20.4) ) sudo apt install php php-bcmath php-curl php-gd php-intl php-mbstring php-mysql php-xml php-soap php-zip
#Install apache2 sudo apt install apache2 #Enable modules sudo a2enmod rewrite
Установим phpMyAdmin
#Install phpmyadmin sudo apt install phpmyadmin
В окне терминала выбираем apache [Пробелом], а перемещаемся клавишей TAB.
Нужно создать файл конфига в папке. Я запускаю от рута Double Commander и создаю файл.
#double commander open as root sudo doublecmd #Create new project virtual host file /etc/apache2/sites-available/magento2.conf
Содержимое файла magento2.conf:
<VirtualHost *:80> ServerAdmin magento2@test.com ServerName localhost.magento2 ServerAlias localhost.magento2 DocumentRoot /var/www/html/magento2 ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/html/magento2> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory> </VirtualHost>
#Применить новую конфигурацию: sudo a2ensite magento2.conf #И перегрузим apache2 systemctl reload apache2
Установка Composer
#Installing Composer sudo apt install composer #composer version: composer --version #При необходимости установим именно ту версию, что нужно: composer self-update 1.10.6
Установка elasticsearch engine
#Download and install elasticsearch engine wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-amd64.deb wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.9.2-amd64.deb.sha512 shasum -a 512 -c elasticsearch-7.9.2-amd64.deb.sha512 sudo dpkg -i elasticsearch-7.9.2-amd64.deb
Создадим файл конфига в папке: /etc/apache2/sites-available/elastic.conf
Для этого:
#double commander open as root sudo doublecmd #включить proxy mod sudo a2enmod proxy_http #Применить новую конфигурацию: sudo a2ensite elastic.conf #И перегрузим apache2 systemctl reload apache2
Файл elastic.conf:
Listen 8080 <VirtualHost *:8080> ProxyPass "/" "http://localhost:9200/" ProxyPassReverse "/" "http://localhost:9200/" </VirtualHost>
Установка Magento
Создадим папку для сайта. magento2
Путь: /var/www/html/
В итоге должно получиться так: /var/www/html/magento2
Зададим права доступа и владельца. Можно через консоль, но я предпочитаю Double commander.
Добавим наш локальный сайт в hosts.
#Add new line with content something like this: 127.0.0.1 localhost.magento2
#Стандартный редактор sudo nano /etc/hosts # У меня сторонний FeatherPad sudo featherpad /etc/hosts
Перегрузим все, что нужно.
#Restart all services sudo service mysql restart sudo service apache2 restart sudo service elasticsearch restart
Проверим работу Elastic
#Verify Elastic installed and works as expected curl -i http://localhost:8080/_cluster/health
Скачаем magento2:
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition .
Важно!!! команду делаем находять терминалом в: /var/www/html/magento2
#перейти в /var/www/html/magento2 cd /var/www/html/magento2
Перед скачиванием у вас спросят имя пользователя и пароль. Это Public Key & Private Key из сайта https://marketplace.magento.com. Если их у вас нет, то нужно их получить. Регистрируйтесь и создавайте себе доступ.
Имя пользователя: Public Key
Пароль: Private Key
Если у вас возникает ошибка связанная с Composer. То откатите его до 1.10.6.
composer self-update 1.10.6 # Версия composer composer -v
Финальная команда:
#Install command from project root directory: php bin/magento setup:install --base-url=http://localhost.magento2/ --db-host=localhost --db-name=magento2 --db-user=eugene --db-password=password --admin-firstname=Eugene --admin-lastname=Eugene --admin-email=user@example.com --admin-user=eugene --admin-password=qwerty1991 --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1 --search-engine=elasticsearch7 --elasticsearch-host=localhost.magento2 --elasticsearch-port=9200
ВАЖНО!!! в конце установки будет ссылка на админку.
Основные данные для создания админа и запуска магазина:
-db-host=localhost
--db-name=magento2
--db-user=eugene
--db-password=password
--admin-firstname=Eugene
--admin-lastname=Eugene
--admin-email=user@example.com
--admin-user=eugene
--admin-password=qwerty1991
host=localhost.magento2
На этом установка закончилась.
Решение ошибки 500
Тут проблема с правами. Нужно ее поправить.
eugene = Имя вашего пользователя.
sudo usermod -a -G eugene www-data sudo usermod -a -G www-data eugene
Теперь перегружаем систему и все работает.
Установим тестовые продукты
#Установим тестовые продукты: php bin/magento sampledata:deploy -------------------------------------------------------- #И обновим настройки php bin/magento setup:upgrade -------------------------------------------------------- #Чистим кеш php bin/magento cache:flush -------------------------------------------------------- #Включим все модули php bin/magento module:enable --all -------------------------------------------------------- #отключим двухфакторку php bin/magento module:disable Magento_TwoFactorAuth -------------------------------------------------------- #И обновим настройки php bin/magento setup:upgrade -------------------------------------------------------- #Чистим кеш php bin/magento cache:flush
Если у вас ошибка:
Updating modules:
Could not validate a connection to Elasticsearch. No alive nodes found in your cluster
#Запустим Elasticsearch sudo service elasticsearch start -------------------------------------------------------- #И обновим настройки php bin/magento setup:upgrade -------------------------------------------------------- #Чистим кеш php bin/magento cache:flush