Как установить Magento 2 на Ubuntu 20.04 LTS

Подробное руководство по настройке и развертыванию магазина Magento2 на сервере Ubuntu 20.04.

Magento - это популярная платформа электронной коммерции, созданная и написанная на PHP, она используется многими малыми предприятиями для продажи продуктов и создания присутствия в Интернете. Он позволяет создать полноценный интернет-магазин с такими функциями, как управление запасами, каталоги продуктов, доставка, выставление счетов и многое другое.

Если вы хотите создать изящную торговую платформу корпоративного уровня для своего бизнеса, Magento должен стать отличной отправной точкой. Итак, в этом руководстве мы рассмотрим, как настроить версию 2.3 сообщества Magento Community Edition со стеком LAMP на сервере Ubuntu 20.04.

Предпосылки

Вам понадобится сервер Ubuntu 20.04 LTS и вы войдете в систему как судо включенный пользователь. Вам также понадобится доменное имя, указывающее на IP-адрес вашего сервера Ubuntu 20.04. Мы будем использовать example.com везде, где требуется доменное имя, замените его своим доменом. Прежде чем мы начнем, обновите список пакетов, а затем обновите пакеты на своем сервере Ubuntu 20.04.

sudo apt update && sudo apt upgrade

Установить веб-сервер Apache

Для работы Magento требуется веб-сервер, в этом руководстве мы решили использовать запуск приложения Magento через стек LAMP (Linux, Apache, MySQL, PHP). Итак, мы собираемся установить все пакеты, состоящие из стека LAMP.

Веб-сервер Apache - один из самых популярных веб-серверов в Интернете, на долю которого приходится почти 37,2% от общей доли рынка веб-серверов. Вы также можете установить Magento через стек LEMP, который использует веб-сервер Nginx вместо apache. Но в этом руководстве мы собираемся развернуть наш сервер Megento с помощью Apache.

Чтобы установить веб-сервер Apache, выполните следующую команду:

sudo apt установить apache2

Введите свой пароль пользователя и нажмите Y если будет предложено. Когда установка будет завершена, нам нужно настроить несложный брандмауэр Ubuntu (UFW), чтобы разрешить трафик на порт 80 & 443.

UFW поставляется с предварительно настроенными профилями, которые можно переключать, чтобы разрешить приложению доступ к портам на вашем сервере Ubuntu 20.04. Поэтому, когда вы установили веб-сервер Apache, профили UFW под названием «Apache», «Apache Full» и «Apache Secure» были добавлены в список приложений UFW. Разрешить веб-серверу Apache обслуживать порт 80 & 443 запустив:

sudo ufw разрешить 'Apache Full'

Теперь все, что нам нужно сделать, это включить UFW, но прежде чем мы это сделаем, убедитесь, что вы разрешили порт. 22 (SSH). Если вы не измените правила SSH UFW, ваш сервер Ubuntu 20.04 может быть заблокирован.

sudo ufw разрешить 'OpenSSH'

Наконец, включите брандмауэр UFW, запустив:

sudo ufw enable

Нажмите Y если вы получите сообщение о том, что команда может нарушить SSH-соединения, поскольку мы уже добавили правило, разрешающее SSH через нее. Теперь вы можете получить доступ к веб-серверу Apache через браузер, ввести IP-адрес своего сервера Ubuntu 20.04 в адресную строку и нажать Enter.

страница по умолчанию apache2 ubuntu

Установить сервер MySQL

Вам также понадобится сервер базы данных для запуска Magento, поскольку именно здесь хранится весь контент магазина Magento. Мы собираемся установить сервер MySQL и создать пользователя с именем пурпурный и база данных под названием Magento для Magento.

Пакет MySQL называется MySQL-сервер в репозиториях Ubuntu установите его, запустив:

sudo apt установить mysql-server

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

sudo mysql_secure_installation

Вам будет предложено несколько вопросов, это оптимальные настройки для сервера MySQL:

  • Хотите настроить компонент ПРОВЕРКА ПАРОЛЯ? [Да / нет]: введите Y
  • Существует три уровня политики проверки пароля.
    • Пожалуйста, введите 0 = НИЗКИЙ, 1 = СРЕДНИЙ и 2 = СИЛЬНЫЙ: введите 2
  • Пожалуйста, установите здесь пароль для root.
    • Новый пароль: введите пароль для пользователя root MySQL.
    • Повторно введите новый пароль: повторите выбранный вами пароль.
  • Удалить анонимных пользователей? [да / нет]: введите Y
  • Запретить удаленный вход root? [да / нет]: введите Y
  • Удалить тестовую базу данных и получить к ней доступ? [да / нет]: введите Y
  • Обновить таблицы привилегий сейчас? [да / нет]: введите Y

Затем, чтобы проверить и убедиться, что сервер MySQL установлен и работает правильно, войдите на сервер MySQL как пользователь root:

sudo mysql

Введите ваш судо пароль пользователя, когда вам будет предложено это сделать, и нажмите Enter. Пользователь root MySQL использует unix_socket для аутентификации логина. По сути, это означает, что вы должны быть судо пользователь, чтобы войти на сервер MySQL как его пользователь root.

Создайте новую базу данных и пользователя для Magento

Теперь мы можем создать пользователя MySQL для Magento, и если вы выполнили каждый шаг этого руководства, у вас должна быть открыта консоль MySQL. Создайте базу данных под названием Magento введя следующий запрос в консоли MySQL:

СОЗДАТЬ БАЗУ ДАННЫХ magento;

Чтобы создать нового пользователя MySQL с именем пурпурный, запустите этот запрос в консоли:

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'magentouser' @ '%' ИДЕНТИФИЦИРОВАННЫЙ mysql_native_password ПО 'паролю';

Примечание: Заменить пароль в запросе с надежным паролем по вашему выбору.

Затем предоставьте новый пурпурный полный доступ к Magento база данных:

ПРЕДОСТАВИТЬ ВСЕ НА magento. * TO 'magentouser' @ '%' С ОПЦИЕЙ GRANT;

Нам нужно установить log_bin_trust_function_creators Параметр равен 1, так как он отключен в последней версии MySQL и без его включения Magento выдает несколько ошибок при установке. Для этого выполните следующий запрос:

УСТАНОВИТЬ ГЛОБАЛЬНЫЙ log_bin_trust_function_creators = 1;

Наконец, перезагрузите права и настройки базы данных, которые мы изменили, и выйдите из консоли, используя следующие запросы:

ПРИВИЛЕГИИ ПРОМЫВКИ; ВЫХОД;

Установите PHP и необходимые расширения

Для работы Magento требуется PHP и несколько расширений PHP. На момент написания этой статьи версия редакции сообщества Magento 2.3 не работает с последней версией PHP 7.4 и поэтому нам нужно установить версию PHP 7.3.

Нам нужно добавить сторонний PHP PPA, чтобы мы могли установить версию PHP. 7.3 поскольку в репозиториях Ubuntu есть только последние 7.4 пакеты. Добавьте PPA и обновите список пакетов, выполнив следующие команды:

sudo add-apt-repository ppa: ondrej / php && обновление sudo apt

Затем установите PHP 7.3 и все модули PHP, которые требуются Magento, выполнив следующую команду:

sudo apt install php7.3 php7.3-common php7.3-mysql php7.3-fpm php7.3-gmp php7.3-curl php7.3-intl php7.3-mbstring php7.3-xmlrpc php7.3- gd php7.3-xml php7.3-cli php7.3-zip php7.3-bcmath php7.3-soap libapache2-mod-php7.3

После установки PHP 7.3 нам нужно настроить некоторые базовые параметры, которые Magento рекомендует для правильной работы. Выполните эту команду, чтобы открыть файл конфигурации расширения FPM с помощью nano

судо нано /etc/php/7.3/fpm/php.ini

Вот несколько настроек, рекомендуемых для большинства веб-сайтов Magento.

file_uploads = On allow_url_fopen = On short_open_tag = On memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360

Сохраните изменения, нажав Ctrl + O затем выйдите из редактора nano, нажав Ctrl + X. Теперь у нас есть PHP и все необходимые расширения, и мы можем перейти к Magento.

Установить Composer

Composer - это менеджер зависимостей PHP, который упрощает установку фреймворков и библиотек PHP. Нам нужен Composer для загрузки и установки Magento на нашем сервере Ubuntu 20.04.

Композитору требуется пакет с именем распаковать чтобы извлечь загруженные библиотеки и фреймворки, установите его, запустив:

sudo apt install распаковать

Затем установите композитор на общесистемном уровне, выполнив эту команду:

curl -sS //getcomposer.org/installer | sudo php - --install-dir = / usr / local / bin --filename = composer

Приведенная выше команда должна установить диспетчер зависимостей Composer на сервере Ubuntu 20.04. Убедитесь, что Composer установлен правильно, запустив:

композитор
 ВЫВОД:  ______ / ____ / ___ ____ ___ ____ ____ ________ _____ / / / __ \ / __ `__ \ / __ \ / __ \ / ___ / _ \ / ___ / / / ___ / / _ / / / / / / / / _ / / / _ / (__) __ / / \ ____ / \ ____ / _ / / _ / / _ / .___ / \ ____ / ____ / \ ___ / _ / / _ / Версия композитора 1.10.8 2020-06- 24 21:23:30 Использование: команда [параметры] [аргументы] 

Загрузите и установите Magento

Теперь мы можем перейти к загрузке и установке Magento, поскольку мы установили и настроили все необходимые пакеты, требуемые Magento.

Создание учетной записи Magento

Чтобы загрузить Magento на свой сервер Ubuntu 20.04, вам понадобится ключ доступа к Magento 2. Чтобы получить этот ключ доступа, вам понадобится учетная запись Magento. Если вы не зарегистрированы и у вас нет учетной записи Magento, перейдите на эту страницу и нажмите «Зарегистрироваться».

После того, как вы закончите создание учетной записи Magento, вы сможете создать новый ключ доступа, чтобы вы могли загрузить Magento 2 на свой компьютер с помощью composer. Вы можете просмотреть все свои ключи доступа к Magento на этой странице. Если на вкладке Magento 2 нет ключа доступа, нажмите кнопку «Создать новый ключ доступа» и дайте ему имя, затем нажмите «ОК».

Эти ключи - ваши учетные данные, используемые для загрузки Magento 2 из репозитория Magento через Composer. Мы будем использовать эти ключи при загрузке Magento, но перед этим мы собираемся настроить владельца каталога и разрешения.

Конфигурация владения и разрешений перед установкой

Права доступа к файлам могут повлиять на безопасность любого веб-сайта или нарушить его, поэтому необходимо правильно установить права собственности и права доступа к корневому каталогу документов на сервере Apache.

Владелец по умолчанию / var / www / каталог является пользователем root, но нам необходимо получить доступ и изменить файлы в этом каталоге. Кроме того, веб-серверу также необходим доступ к корню документа для обратной записи и изменения содержимого сайта Magento.

Итак, чтобы решить эту проблему, мы собираемся добавить текущего пользователя в www-data group, для этого запустите:

sudo usermod -a -G www-data $ ПОЛЬЗОВАТЕЛЬ

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

sudo chown -R $ ПОЛЬЗОВАТЕЛЬ: www-data / var / www /

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

Скачивание Magento

На этом этапе у вас должна быть учетная запись Magento с правильно настроенными ключами доступа и разрешениями перед установкой. Итак, мы будем использовать Composer, чтобы загрузить Magento в корень документа Apache, а затем установить его.

Измените текущий каталог на / var / www / поэтому терминал указывает на него, запустив:

cd / var / www /

Выполните команду ниже, чтобы создать новый проект с помощью Composer, известного как Magento.

композитор create-project --repository = // repo.magento.com/ magento / project-community-edition magento

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

 Вывод:  Создание проекта "magento / project-community-edition" по адресу "./magento" Предупреждение от repo.magento.com: вы не предоставили свои ключи аутентификации Magento. Для получения инструкций посетите //devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html Требуется аутентификация (repo.magento.com): Имя пользователя: e8b6120dce14c3d982a85525264897c4 Пароль: Вы хотите сохранить учетные данные для repo.magento.com в /home/ath/.config/composer/auth.json? [Yn] Y

После того, как Magento и все его зависимости загружены через Composer, нам нужно установить права собственности и разрешения для нового каталога проекта magento и его файлов. Измените каталог на корень проекта Magento:

cd / var / www / magento /

Затем измените владельца группы каталога проекта Magento и его подкаталогов, запустив:

найти сгенерированный var vendor pub / static pub / media app / etc -type f -exec chmod g + w {} + && найти сгенерированный var vendor pub / static pub / media app / etc -type d -exec chmod g + ws {} + && chmod u + x bin / magento && sudo chown -R: www-data. 

Эта команда предоставит группе веб-серверов (www-data) разрешения на запись в каталоги vendor, pub / static, pub / media и app / etc и файлы внутри них. Кроме того, это сделает bin / magento исполняемый файл, чтобы мы могли запустить его и установить Magento в нашей системе.

Настройка Apache для Magento

Мы собираемся установить Magento через графический интерфейс, поскольку в этом случае он более интуитивно понятен, чем установка через интерфейс командной строки. Таким образом, нам нужно создать виртуальный хост для веб-сервера Apache, прежде чем мы сможем продолжить установку Magento.

Откройте файл виртуального хоста Apache по умолчанию с помощью nano, используя следующую команду:

sudo nano /etc/apache2/sites-available/000-default.conf

Измените корень документа на / var / www / magento и добавьте под ним следующий фрагмент кода.

 AllowOverride All ServerName example.com ServerAlias ​​www.example.com

Заменить example.com в ServerName и ServerAlias ​​с вашим доменным именем. Изменения в вашем 000-default.conf файл должен выглядеть как выделенный текст, показанный ниже. Сохраните изменения, нажав Ctrl + O и выйдите из редактора, используя Ctrl + X ключи.

 ServerAdmin веб-мастер @ localhost DocumentRoot / var / www / magento AllowOverride All ServerName example.com ServerAlias ​​www.example.com ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log вместе 

Затем нам нужно включить мод Apache под названием mod_rewrite требуется Magento. Он обеспечивает гибкий и мощный способ управления URL-адресами, поэтому включите мод, запустив:

sudo a2enmod переписать

Перезагрузите сервер Apache, чтобы все внесенные нами изменения применились к серверу:

sudo systemctl перезапустить apache2

Установка Magento

Наконец, мы можем продолжить установку Magento, так как у нас есть все, что требуется Magento для работы. Введите IP-адрес вашего сервера Ubuntu 20.04 в адресную строку предпочтительного браузера.

Нажмите «Принять и настроить Magento», чтобы продолжить установку Magento. Первым шагом установщика Magento Web является проверка готовности, она проверяет выполнение всех требований Magento. Щелкните «Начать проверку готовности», а после завершения процесса нажмите «Далее».

Следующим шагом является настройка деталей и добавление базы данных для Magento. Мы уже создали пользователя MySQL для Magento под названием пурпурный и база данных под названием Magento в разделе выше. Заполните соответствующие данные в этом разделе, а именно имя пользователя сервера базы данных, его пароль и имя базы данных, а затем нажмите «Далее», чтобы продолжить.

Третий шаг в настройке Magento - это веб-конфигурация. Замените IP-адрес из поля «Store Address» на свое доменное имя, если оно у вас есть. Не забудьте поставить косую черту (/) после вашего доменного имени, иначе URL-адрес администратора станет недоступен.

Затем нажмите «Дополнительные параметры» и отметьте оба параметра HTTPS, если вы хотите использовать безопасное соединение для своего сайта Magento. Оставьте остальные настройки без изменений и нажмите «Далее».

Примечание: Если вы отметите опции HTTPS, вам потребуется получить для него SSL-сертификаты. Мы рассмотрим, как получить сертификаты SSL в следующем разделе этого руководства.

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

На пятом шаге вам нужно будет создать учетную запись администратора для вашей панели администратора Magento. Введите новое имя пользователя для вашего администратора и введите адрес электронной почты, предоставленный вашим провайдером доменного имени. Создайте надежный пароль для учетной записи администратора, а затем нажмите «Далее», когда закончите.

Последний и последний шаг - просто нажмите кнопку «Установить», чтобы подтвердить настройки и начать процесс установки. Когда установка будет завершена, настройка Magento покажет вам сводку и некоторые важные сведения о вашем сайте Magento.

Запишите эти данные в безопасном месте, например в автономной бумажной записи или в защищенной базе данных. Адрес администратора Magento и ключ шифрования никогда не должны публиковаться. Ключ шифрования используется для шифрования базы данных Magento, чтобы пользовательские данные были в безопасности, даже если есть утечка данных.

Создайте сертификат SSL для вашего сайта Magento

Сайт Magento развернут, и к нему можно получить доступ сразу после завершения установки. Но если вы хотите обслуживать веб-трафик по HTTPS, вам необходимо настроить сертификат SSL для своего домена.

Letsencrypt - это некоммерческий центр сертификации, который бесплатно предоставляет сертификаты TLS. Мы собираемся использовать пакет под названием Certbot который помогает автоматически получить сертификат и настроить виртуальный хост Apache. Выполните эту команду в терминале, чтобы установить certbot:

sudo apt установить certbot python3-certbot-apache

Чтобы получить сертификат от Letsencrypt и настроить виртуальный хост Apache, выполните следующую команду:

sudo certbot --apache

Certbot начнет процесс получения сертификатов от Letsencrypt, предоставит ваш адрес электронной почты при появлении запроса и затем нажмет клавишу ввода. Затем введите А чтобы согласиться с условиями использования Letsencrypt. Вас спросят, хотите ли вы поделиться своим адресом электронной почты с EFF, введите Y или N в зависимости от вашего выбора.

Затем вам будет предоставлен список доменных имен, для которых вы хотите активировать HTTPS. Введите соответствующий номер, соответствующий вашему доменному имени, и нажмите Enter.

После выбора имени домена вас спросят, хотите ли вы перенаправить HTTP-трафик на HTTPS, введите 2 и нажмите Enter. Certbot теперь автоматически настроит виртуальный хост Apache для домена. example.com.

Пакет Certbot поставляется с cronjob, который автоматически обновляет сертификаты сервера до истечения срока их действия.Проверьте, работает ли автоматическое продление, запустив:

sudo certbot обновить --dry-run

Приведенный выше вывод означает, что cronjob автоматического обновления работает правильно. Чтобы убедиться, что Certbot работает, откройте браузер и перейдите в свой домен. //example.com.

Точно так же вы можете получить доступ к странице входа администратора, используя //example.com/admin_SecretString, этот URL был в конце установки Magento.

Вы успешно установили Magento на сервер Ubuntu 20.04 LTS и теперь можете настраивать свой магазин в соответствии со своими потребностями. Чтобы узнать больше о Magento и узнать о разработке магазинов, перейдите на страницу Magento Docs.