Magento — одна из лучших платформ для электронной коммерции. В 2015 году команда Magento представила вторую версию своей платформы, Magento2, а 28 апреля 2020 года вышел очередной релиз Magento 2.3.5, включающий в себя более 180 функциональных исправлений и более 25 улучшений безопасности.
Эта статья поможет вам установить самую свежую версию Magento2 на виртуальный сервер под управлением ОС Ubuntu 18.04.
Для установки вам потребуется:
- виртуальный сервер с Ubuntu 18.04. Вы можете создать его в Serverspace бесплатно, воспользовавшись тестовым балансом, который выдается автоматически сразу после регистрации;
- установленная программа PuTTY для работы с консолью.
Установка LAMP
Для начала откроем консоль, войдем на сервер и обновим пакеты Ubuntu 18.04:
sudo apt update
sudo apt-get update
После загрузки всех обновлений можем приступать к установке LAMP (Linux, Apache, MySQL, PHP). Начнем с установки веб-сервера Apache:
sudo apt install apache2 wget unzip
Далее установим PHP и его модули:
sudo apt install php libapache2-mod-php php-mysql php-dom php-simplexml php-pear
sudo apt install php-curl php-intl php-xsl php-mbstring php-zip php-xml php-soap php-bcmath
Затем установим систему управления базами данных MySQL:
sudo apt install mysql-server
После завершения установки запустим MySQL:
sudo systemctl start mysql.service
и скрипт mysql_secure_installation, чтобы создать пароль для учетной записи root и защитить сервер MySQL:
sudo mysql_secure_installation
Затем чтобы обезопасить сервер, скрипт задаст нам несколько вопросов:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
- Dropping test database...
Success.
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.
Заходим в MySql:
sudo mysql -u root -p
Создаем необходимую дата-базу Magento 2:
CREATE DATABASE magento2
Затем создаем пользователя и пароль:
CREATE USER 'userr'@'localhost' IDENTIFIED BY 'PASSWORD';
Даем пользователю права к нашей дата-базе Magento 2:
GRANT ALL ON magento2.* TO 'userr'@'localhost' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Сохраним привилегии и выйдем из MySql:
FLUSH PRIVILEGES;
EXIT;
Установка LAMP завершена. Переходим к следующему шагу.
Настройка виртуального хоста Apache2
Создадим новый файл magento2.conf:
sudo nano /etc/apache2/sites-available/magento2.conf
Скопируем и вставим следующее содержимое в файл выше. Помните, что вы должны изменить domain.com на ваш домен.
ServerAdmin admin@domain.com
DocumentRoot /var/www/html/magento2/
ServerName domain.com
ServerAlias www.domain.com
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
Убедимся, что rewrite mod включен:
sudo a2ensite magento2.conf
sudo a2enmod rewrite
Увеличим доступные значения в файле php.ini.:
sudo nano /etc/php/7.2/apache2/php.ini
Изменим следующие значения в открывшимся файле. Чтобы проще найти нужную строку, используйте Ctrl+W.
file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 512M
upload_max_filesize = 128M
max_execution_time = 3600
Сохраняем файл и выходим из него.
Перезапустим Apache2:
sudo systemctl restart apache2.service
Установка PHP Composer
Чтобы установить пакетный менеджер PHP Composer, выполним следующие команды:
sudo apt install wget php-cli php-zip unzip
Теперь, когда на нашем компьютере установлен PHP cli, мы можем скачать установщик composer:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Далее нам нужно проверить целостность данных скрипта:
HASH="$(wget -q -O - https://composer.github.io/installer.sig)"
Теперь выполним следующую команду, чтобы убедиться, что сценарий установки не поврежден:
php -r "if (hash_file('SHA384', 'composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Установим Composer в каталог / usr / local / bin:
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
Проверим установился ли Composer:
composer
Если установка прошла успешно нам вылезет следующий текст:
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ / __ `__ / __ / __ / ___/ _ / ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
____/____/_/ /_/ /_/ .___/____/____/___/_/
/_/
Composer version 1.8.5 2019-04-09 17:46:47
Usage:
command [options] [arguments]
На этом все. Приступаем к скачиванию Magento2.
Скачивание архива с Magento2
Зайдем в нужную директорию:
cd /var/www/
Скачаем необходимый нам файл:
wget https://github.com/magento/magento2/archive/2.3.zip
Проверим создался ли наш файл:
dir
Если мы правильно скачали файл,то ответ должен быть таким:
2.3 zip
Распакуем наш файл:
unzip 2.3.zip
Проверим создался ли новый файл:
dir
Если файл распаковался,то ответ должен быть таким:
/var/www/maagento2
Установим Composer:
composer install
Скачиваем нужную нам версию PHP:
sudo apt-get install php7.2-gd
Затем установим разрешения для файлов для их запуска с веб-сервером Apache:
sudo chown -R www-data.www-data /var/www/magento2
sudo chmod -R 755 /var/www/magento2
sudo chmod -R 777 /var/www/magento2/{pub,var}
Теперь Composer установлен на ваш сервер.
Создание базы данных и пользователя
Войдем в MySQL с правами администратора:
mysql -u root -p
Создадим базу данных. Вместо “magento2_db” укажите свое название базы данных:
CREATE DATABASE magento2_db;
и пользователя базы данных. Вместо “magento2_usr” укажите желаемое имя пользователя базы данных, а вместо “pa$$word” — желаемый пароль от базы данных:
CREATE USER magento2_usr@'localhost' IDENTIFIED BY 'pa$$word';
Далее предоставим пользователю необходимые привилегии. Не забудьте поставить свои значения вместо “magento2_db” и “magento2_usr”:
GRANT ALL ON magento2_db.* TO magento2_usr@'localhost';
Актуализируем внесенные изменения, выполнив команду:
FLUSH PRIVILEGES;
Изменения вступили в силу. Выходим из MySQL командой:
quit
Создание виртуального хоста Apache
Создадим конфигурационный файл Apache для нашего сайта Magento2. Вместо “domain.com” укажите свой домен:
sudo vim /etc/apache2/sites-available/domain.com.conf
В открывшийся файл добавим следующие строки (вместо “domain.com” укажите свой домен):
VirtualHost *:80>
DocumentRoot /var/www/magento2
ServerName domain.com
<Directory /var/www/magento2>
Allowoverride all
</Directory>
</VirtualHost>
Сохраним и закроем файл. Затем включим виртуальный хост следующей командой (вместо “example.by” укажите свой домен):
sudo a2ensite domain.com
Также включим модуль перезаписи Apache, который рекомендует Magento:
sudo a2enmod rewrite
Для внесения выполненных изменений перезапустим сервер Apache:
sudo systemcl restart apache2.service
Установка Magento2
Теперь приступаем к главному — установке Magento2. Введем наш домен в браузере и он перенаправит нас на страницу установки:
http://domain.com
Соглашаемся с лицензионным соглашением и нажимаем на кнопку “Agree and Setup Magento”:

Теперь нажимаем на кнопку “Start Readiness Test” — Magento запустит проверку на наличие необходимого программного обеспечения на сервере. После завершения нажимаем “Next”. Если проверка выявила отсутствие каких-либо компонентов, попробуйте установить их еще раз и нажать “Try again”:

Затем вводим сведения о базе данных, которую мы создавали ранее:

После этого установщик отобразит адрес вашего сайта и сгенерирует случайную ссылку для входа в административную панель. Вы можете изменить ее по своему усмотрению:

Создадим пользователя с правами администратора для входа в панель управления Magento2:

Теперь Magento2 готов к установке. Нажимаем на кнопку “Install now”, чтобы начать установку и дожидаемся ее завершения:

После завершения установки появится следующий экран:

Далее откроется окно авторизации в панели управления Magento2. Выполните вход, используя логин и пароль, сформированные ранее:

Процесс завершен. Поздравляем с успешной установкой Magento2 на вашем виртуальном сервере!
Настройка Magento2
В заключение рекомендуем вам настроить автоматическое выполнение некоторых задач с помощью планировщика задач Cron, который сможет запускать повторную индексацию, обновлять курсы валют, отправлять автоматические письма, генерировать файл Sitemap и так далее. Для этого откроем файл CronTab, в котором содержатся задания для Cron:
crontab -e
И в конце файла добавим такие строки:
* * * * * www-data php /var/www/magento2/bin/magento cron:run
* * * * * www-data php /var/www/magento2/update/cron.php
* * * * * www-data php /var/www/magento2/bin/magento setup:cron:run
, где www-data — это пользователь, под которым работает Apache, а /var/www/magento2/ — каталог с Magento2. Для завершения сохраняем внесенные изменения и выходим из редактирования файла.