Установка Magento 2 на Ubuntu или Linux mint 20
20Magento 2, Linux

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.

Chmod

Добавим наш локальный сайт в hosts.

#Add new line with content something like this:
127.0.0.1 localhost.magento2
#Стандартный редактор
sudo nano /etc/hosts
# У меня сторонний FeatherPad
sudo featherpad /etc/hosts

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

Elastic work

Скачаем 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

api

Если у вас возникает ошибка связанная с 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

ВАЖНО!!! в конце установки будет ссылка на админку.

admin link

Основные данные для создания админа и запуска магазина:

-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

Magento2 work