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

Установка Magento 2 на Ubuntu 18.04 с помощью Composer

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

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

В этом руководстве мы покажем вам, как установить Magento 2.3 на компьютер с Ubuntu 18.04. Мы будем использовать Nginx в качестве веб-сервера, последнюю версию PHP 7.2 и MySQL/MariaDB в качестве сервера базы данных.

Предпосылки

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

  • Укажите доменное имя, указывающее на IP-адрес вашего публичного сервера. Мы будем использовать example.com .
  • Nginx устанавливается на ваш сервер Ubuntu, следуя этим инструкциям .
  • SSL-сертификат, установленный для вашего домена, для шифрования данных пользователя. Вы можете установить бесплатный SSL-сертификат Let's Encrypt, следуя этим инструкциям .

Чтобы получить доступ к репозиторию кода Magento 2, вам необходимо сгенерировать ключи аутентификации. Если у вас нет учётной записи Magento Marketplace, вы можете создать её здесь . После создания учётной записи ознакомьтесь с этими инструкциями по генерации нового набора ключей аутентификации.

Обновите системные пакеты до последних версий и установите утилиту unzip :

 sudo apt update && sudo apt upgrade sudo apt install unzip

Создание базы данных MySQL

Если на вашем сервере установлены MySQL или MariaDB , вы можете пропустить этот шаг. В противном случае вы можете установить пакет сервера MySQL 5.7 из репозиториев Ubuntu по умолчанию, введя:

 sudo apt install mysql-server mysql-client

Для новых установок MySQL рекомендуется выполнить команду mysql_secure_installation , чтобы повысить безопасность вашего сервера MySQL.

Войдите в оболочку MySQL, используя следующую команду:

 sudo mysql

В оболочке MySQL выполните следующий оператор SQL, чтобы создать новую базу данных с именем magento :

 CREATE DATABASE magento;

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

 GRANT ALL ON magento.* TO 'magento'@'localhost' IDENTIFIED BY 'change-with-strong-password';

Обязательно измените change-with-strong-password на надежный пароль.

После этого выйдите из консоли MySQL, введя:

 EXIT;

Создание системного пользователя

Создайте нового пользователя и группу, которая будет владельцем файловой системы Magento. Для простоты назовем пользователя magento :

 sudo useradd -m -U -r -d /opt/magento magento

Добавьте пользователя www-data в группу magento и измените права доступа к каталогу /opt/magento чтобы Nginx мог получить доступ к установке Magento:

 sudo usermod -a -G magento www-data sudo chmod 750 /opt/magento

Установка и настройка PHP

PHP 7.2 , версия PHP по умолчанию в Ubuntu 18.04, полностью поддерживается и рекомендуется для Magento 2.3. Поскольку мы будем использовать Nginx в качестве веб-сервера, мы также установим пакет PHP-FPM.

Выполните следующую команду для установки PHP и всех необходимых модулей PHP:

 sudo apt install php7.2-common php7.2-cli php7.2-fpm php7.2-opcache php7.2-gd php7.2-mysql php7.2-curl php7.2-intl php7.2-xsl php7.2-mbstring php7.2-zip php7.2-bcmath php7.2-soap

Служба PHP-FPM автоматически запустится после завершения процесса установки. Вы можете проверить это, распечатав статус службы:

 sudo systemctl status php7.2-fpm

Вывод должен указывать на то, что служба fpm активна и работает.

 ● php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2018-12-12 15:47:16 UTC; 5s ago Docs: man:php-fpm7.2(8) Main PID: 16814 (php-fpm7.2) Status: "Ready to handle connections" Tasks: 3 (limit: 505) CGroup: /system.slice/php7.2-fpm.service

Установите требуемые и рекомендуемые параметры PHP, отредактировав файл php.ini с помощью sed ::

 sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7.2/fpm/php.ini

Далее нам нужно создать пул FPM для пользователя magento .

Откройте текстовый редактор и создайте следующий файл:

 sudo nano /etc/php/7.2/fpm/pool.d/magento.conf

/etc/php/7.2/fpm/pool.d/magento.conf

 [magento] user = magento group = www-data listen.owner = magento listen.group = www-data listen = /var/run/php/php7.2-fpm-magento.sock pm = ondemand pm.max_children = 50 pm.process_idle_timeout = 10s pm.max_requests = 500 chdir = /

Перезапустите службу PHP-FPM, чтобы изменения вступили в силу:

 systemctl restart php7.2-fpm

Проверьте, был ли успешно создан сокет PHP, выполнив следующую команду ls :

 ls -al /var/run/php/php7.2-fpm-magento.sock

Вывод должен выглядеть примерно так:

 srw-rw---- 1 magento www-data 0 Dec 12 16:07 /var/run/php/php7.2-fpm-magento.sock=

Установка Composer

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

Чтобы установить Composer глобально, загрузите установщик Composer с помощью curl и переместите файл в каталог /usr/local/bin :

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

Проверьте установку, распечатав версию композитора:

 composer --version

Вывод должен выглядеть примерно так:

 Composer version 1.8.0 2018-12-03 10:31:16

Установка Magento

Существует несколько способов установки Magento 2. Избегайте установки Magento из репозитория Github, поскольку эта версия предназначена для разработки, а не для производственных установок.

На момент написания статьи последней стабильной версией Magento была версия 2.3.0 . В этом руководстве мы установим Magento из репозиториев с помощью Composer.

Переключитесь на пользователя magento , введя:

 sudo su - magento

Начните установку с загрузки файлов magento в каталог /opt/magento/public_html:

 composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition /opt/magento/public_html

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

 Authentication required (repo.magento.com): Username: e758ec1745d190320ca246e4e832e12c Password: Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn] Y

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

 Writing lock file Generating autoload files

После создания проекта можно приступить к установке Magento. Установить Magento можно как из командной строки, так и с помощью веб-мастера установки. В этом руководстве мы установим Magento с помощью командной строки.

Для установки магазина Magento мы будем использовать следующие параметры:

  • Базовый и базовый защищенные URL-адреса установлены на https://example.com , измените его на свой домен.
  • Администратор Magento:
    • Имя и фамилия — John Doe .
    • john@example.com в качестве адреса электронной почты.
    • john в качестве имени пользователя и j0hnP4ssvv0rD в качестве пароля.
  • Имя базы данных magento , имя пользователя magento , пароль change-with-strong-password , а сервер базы данных находится на том же хосте, что и веб-сервер.
  • en_US , американский английский как язык по умолчанию.
  • Доллары USD в качестве валюты по умолчанию.
  • America/Chicago как часовой пояс.

Все варианты установки вы можете найти здесь .

Перейдите в каталог Magento ~/public_html :

 cd ~/public_html

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

 php bin/magento setup:install --base-url = https://example.com/  --base-url-secure = https://example.com/  --admin-firstname = "John"  --admin-lastname = "Doe"  --admin-email = "john@example.com"  --admin-user = "john"  --admin-password = "j0hnP4ssvv0rD"  --db-name = "magento"  --db-host = "localhost"  --db-user = "magento"  --currency = USD  --timezone = America/Chicago  --use-rewrites = 1  --db-password = "change-with-strong-password"

Не забудьте сменить пароль ( j0hnP4ssvv0rD ) на более безопасный.

Процесс может занять несколько минут, и после его завершения вы увидите сообщение, содержащее URI панели администратора Magento.

 [Progress: 773 / 773] [SUCCESS]: Magento installation complete. [SUCCESS]: Magento Admin URI: /admin_13nv5k Nothing to import.

Создание Magento crontab

Magento использует задания cron для планирования таких задач, как переиндексация, уведомления, карты сайта, электронные письма и многое другое.

Чтобы создать файл crontab Magento, выполните следующую команду от имени пользователя magento :

 php ~/public_html/bin/magento cron:install
 Crontab has been generated and saved

Убедитесь, что crontab установлен, введя:

 crontab -l
 #~ MAGENTO START adc062915d7b30804a2b340095af072d * * * * * /usr/bin/php7.2 /opt/magento/public_html/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /opt/magento/public_html/var/log/magento.cron.log * * * * * /usr/bin/php7.2 /opt/magento/public_html/update/cron.php >> /opt/magento/public_html/var/log/update.cron.log * * * * * /usr/bin/php7.2 /opt/magento/public_html/bin/magento setup:cron:run >> /opt/magento/public_html/var/log/setup.cron.log #~ MAGENTO END adc062915d7b30804a2b340095af072d

Настройка Nginx

К настоящему моменту на вашем сервере Ubuntu уже должен быть установлен Nginx с SSL-сертификатом. Если нет, проверьте предварительные требования для этого руководства.

Мы собираемся включить конфигурацию Nginx по умолчанию, поставляемую с Magento.

Переключитесь на пользователя sudo, откройте текстовый редактор и создайте следующий файл:

 sudo nano /etc/nginx/sites-available/example.com

/etc/nginx/sites-available/example.com

 upstream fastcgi_backend { server unix:/var/run/php/php7.2-fpm-magento.sock ; } server { listen 80 ; server_name example.com www.example.com ; include snippets/letsencrypt.conf ; return 301 https://example.com $request_uri ; } server { listen 443 ssl http2 ; server_name www.example.com ; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem ; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem ; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem ; include snippets/ssl.conf ; include snippets/letsencrypt.conf ; return 301 https://example.com $request_uri ; } server { listen 443 ssl http2 ; server_name example.com ; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem ; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem ; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem ; include snippets/ssl.conf ; include snippets/letsencrypt.conf ; set $MAGE_ROOT /opt/magento/public_html ; set $MAGE_MODE developer ; # or production access_log /var/log/nginx/example.com-access.log ; error_log /var/log/nginx/example.com-error.log ; include /opt/magento/public_html/nginx.conf.sample ; }

Не забудьте заменить example.com на свой домен Magento и указать правильный путь к файлам SSL-сертификата. Фрагменты, используемые в этой конфигурации, созданы в этом руководстве .

Перед перезапуском службы Nginx выполните проверку, чтобы убедиться в отсутствии синтаксических ошибок:

 sudo nginx -t

Если ошибок нет, вывод должен выглядеть так:

 nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Наконец, перезапустите службу Nginx , введя:

 sudo systemctl restart nginx

Проверка установки

Откройте браузер, введите свой домен и, если установка прошла успешно, появится экран, подобный следующему:

Ubuntu Магенто

Теперь вы можете перейти на страницу Magento Admin URI, войти в систему как администратор и начать настраивать новую установку Magento.

Заключение

Поздравляем! Вы успешно установили Magento 2.3 на сервер Ubuntu 18.04. Теперь вы можете приступить к настройке своего магазина.

Документация разработчика Magento 2.3 — хорошая отправная точка для получения дополнительной информации об управлении установкой Magento.

Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

ubuntu magento mysql mariadb php nginx composer ecommerce

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *