Полное руководство по установке Magento 2 с включенным SSL на Ubuntu ≥ 18.04



Книга Полное руководство по установке Magento 2 с включенным SSL на Ubuntu ≥ 18.04

Установка Magento2 на Ubuntu бывает трудной. Это руководство призвано упростить ее, какие бы приложения вы ни использовали.


Платформа электронной коммерции Magento

Мы установим стабильную и по-прежнему очень актуальную версию Magento 2.3.7. Для версий новее приведем требования по типичным приложениям для работы с Magento 2. Если строго следовать этому руководству, успешная установка гарантирована.


В интернете большинство статей о Magento 2 ограничиваются лишь необходимыми для ее установки интерфейсами командной строки. А самое досадное в этих статьях  —  то, что страница Magento2 при нажатии на домен, поддомен или IP-адрес сервера не грузится и все ваши усилия умножаются на ноль.


Все технические аспекты установки важны и требуют внимания, но конфигурация сервера важнее.


Для успешной установки Magento 2 понадобятся: NGINX версии 1.8, MYSQL версии 5.7, PHP версии 7.4 и MAGENTO 2 версии 2.3.7.


Для версий Magento 2.4.0 и новее нужна MYSQL 8.0 и обязательна Elasticsearch.


Необходимые условия



  • Ubuntu Server ≥ 18.04.

  • SSH-доступ с правами root или права суперпользователя.


Как говорится, дорогу осилит идущий  —  приступим к установке.


Шаг 1. Обновление системы


Важно обновить локальный индекс пакета для выявления последних изменений:


$  sudo apt update && sudo apt upgrade

Шаг 2. Установка веб-сервера


Устанавливаем веб-сервер NGINX:


$  sudo apt install nginx

Задействуем текстовый редактор NANO. Подойдет любой другой, например VIM.


Создаем блок сервера для домена:


$  sudo nano /etc/nginx/sites-enabled/magento.conf

Вставляем в файл конфигурации это:


upstream fastcgi_backend {
server unix:/run/php/php7.4-fpm.sock;
}

server {

listen 80;
server_name yourdomain.com;
set $MAGE_ROOT /var/www/html/magento2;
include /var/www/html/magento2/nginx.conf.sample;
}

Сохраняем файл и выходим, нажимая Ctrl + O, Enter и Ctrl + X.


Шаг 3. Установка MySQL и создание базы данных для Magento 2


Устанавливаем MySQL:


$  sudo apt install mysql-server

Проверяем версию:


$  sudo mysql -V


Версия MySQL 5.7 или новее совместима с Magento 2.3.7.


Настроим доступ по паролю для учетной записи администратора MySQL. Важны базовая безопасность и культура сопровождения: нужно защитить БД паролями, сделав ее безопасной.


Запускаем следующую команду:


$  sudo mysql

SELECT user,authentication_string,plugin,host FROM mysql.user;


На изображении видно: к учетной записи администратора нет доступа по паролю. Включаем его MySQL-запросом:


ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_secure_password';

‘your_secure_password’ следует заменить на свой пароль.


Инициировано ли изменение в таблице пользователей MySQL, подтверждаем этим SQL-запросом:


SELECT user,authentication_string,plugin,host FROM mysql.user;


mysql_native_password в последней строке столбца plugin означает, что MySQL защищена паролем.


Выходим из базы данных:


exit

В MySQL создадим пользователя для Magento2. На этот раз войдем в систему как привилегированный пользователь с созданным ранее паролем. your_secure_password меняем на свой пароль:


$  mysql -u root -p

CREATE USER 'magento2'@'localhost' IDENTIFIED BY 'your_secure_password';

Создаем базу данных для Magento 2:


CREATE DATABASE magento2;

Предоставляем все привилегии пользователям Magento2:


GRANT ALL PRIVILEGES ON *.* TO 'magento2'@'localhost' WITH GRANT OPTION;

Выходим:


exit

Шаг 4. Установка PHP с требуемыми расширениями


Одно из упущений при установке PHP  —  забыть о расширениях для Magento 2. Вот типичные ошибки, которыми чревата неустановка необходимых расширений:




Такие ошибки  —  свидетельство проблем с расширениями PHP. 
Чтобы исключить ошибки, в системе должны быть следующие зависимости:


$  sudo apt install software-properties-common apt-transport-https -y

Устанавливаем/импортируем PPA (персональные архивы пакетов) от ведущего разработчика PHP на Debian Ondřej Surý, который также специализируется на PPA Ubuntu. Они используются в версиях PHP 8.0, 8.1 и новее:


$  sudo add-apt-repository ppa:ondrej/php -y

После выполнения предыдущих команд обновляем apt-репозитории, поскольку добавление PPA чревато дополнительными обновлениями имеющихся зависимостей:


$  sudo apt update && sudo apt upgrade

Во избежание показанных выше ошибок устанавливаем PHP7.4 со всеми требуемыми расширениями:


$  sudo apt-get install php7.4-bcmath php7.4-common php7.4-curl php7.4-fpm php7.4-gd php7.4-intl php7.4-mbstring php7.4-mysql php7.4-soap php7.4-xml php7.4-xsl php7.4-zip

Настраиваем параметры PHP в соответствии с минимальными требованиями Magento 2:


$  sudo sed -i "s/memory_limit = .*/memory_limit = 768M/" /etc/php/7.4/fpm/php.ini
$ sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 128M/" /etc/php/7.4/fpm/php.ini
$ sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.4/fpm/php.ini
$ sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.4/fpm/php.ini

Шаг 5. Установка Composer


Composer нужен для установки Magento 2.


Возвращаемся в корневой каталог:


$  cd ~

Загружаем и устанавливаем Composer:


$  curl -sS https://getcomposer.org/installer -o composer-setup.php

$  sudo php composer-setup.php --install-dir=/usr/bin --filename=composer

Проверяем версию:


$  composer


Composer установлен.


Шаг 6. Загрузка и установка Magento 2


Переходим в папку html:


$  cd /var/www/html

Загружаем Magento 2.3.7 с помощью Magento Open Source, создав новый проект Composer:


$  sudo composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.3.7 magento2


Чтобы ввести имя пользователя и пароль, создаем на сайте учетную запись. Заходим в профиль, нажимаем create a new access key («Создать новый ключ доступа»):



Ключи доступа такие же, как на изображении: public key («Открытый ключ»)  —  это имя пользователя, а private key («Закрытый ключ»)  —  пароль.



У вас такая же картинка? Значит, все нормально.


К концу установки получите файлы Magento 2. Подтверждаем нахождение файла в текущем рабочем каталоге  —  в Linux это pwd  —  командой ls.


Задание разрешений для файлов


Без необходимых разрешений Magento 2 не установится:


$  cd /var/www/html/<the_directory_your_magento_was_installed>

$  sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R user_name:www-data .
$ sudo chmod u+x bin/magento

Ваш user_name  —  это имя пользователя с доступом с правами root. Оно проверяется запуском whoami.


Задав разрешения, установим Magento этой волшебной командой:


bin/magento setup:install \
--base-url=http://yourdomain.com \
--db-host=localhost \
--db-name=magento2 \
--db-user=magento2 \
--db-password=your_secure_password \
--admin-firstname=admin \
--admin-lastname=admin \
[email protected] \
--admin-user=admin \
--admin-password=admin123 \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1


Если в db-password имеется цифра или специальный символ, обязательно заключаем их в кавычки. Например, 675Magento%$ в db-password записывается как “675Magento%$”.



После успешной установки отображается что-то вроде:



Обязательно сохраняем URL-адрес администратора, хотя есть способ восстановить его в случае утери. Но в этом руководстве о нем речи не пойдет.


В случае ошибки разрешения входим в MySQL с помощью команды mysql -u root -p и запросом GRANT ALL PRIVILEGES ON *.* TO ‘magento2’@’localhost’ WITH GRANT OPTION. Предоставляем привилегии всем пользователям magento2.


Если обошлось без неустраненных ошибок, поздравляем. Впереди последнее и самое важное, чего нет в большинстве онлайн-руководств: загрузка страницы Magento.


Чтобы сконфигурировать NGINX, возвращаемся к блоку сервера:


$  sudo nano /etc/nginx/sites-enabled/magento.conf

Редактируем его:


upstream fastcgi_backend {
server unix:/run/php/php7.4-fpm.sock;
}

server {
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
server_name <your_domain or sub_domain>.com;
listen 80;
set $MAGE_ROOT /var/www/html/magento2;
set $MAGE_MODE developer; # или production

access_log /var/log/nginx/magento2-access.log;
error_log /var/log/nginx/magento2-error.log;

include /var/www/html/magento2/nginx.conf.sample;
}

Запускаем:


$ sudo systemctl restart nginx

При такой конфигурации страница Magento отображается доменом/поддоменом так:



Чтобы попасть на страницу администратора, перейдите в ваш_домен или под_домен.com/url-адрес_администратора. URL-адрес администратора  —  тот, что мы сохранили после установки Magento2.


Вот эта идеально установленная страница:




367   0  

Comments

    Ничего не найдено.