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

How to Install Magento 2 on Ubuntu 18.04

10 Февраля 2021 | Ubuntu

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

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

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


Прежде чем вы приступите

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

  • Иметь доменное имя, указывающее на 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 Marketplace и сохранить их в 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 как часовой пояс.

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

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

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 для планирования таких задач, как повторная индексация, уведомления, карты сайта, электронные письма и многое другое.

Чтобы создать Magento crontab, выполните следующую команду от имени 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

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

Мы собираемся включить конфигурацию 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 


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

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



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

Заключение 

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

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


    Комментарии

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

Загрузка комментариев...