Установка и настройка Magento 2 on CentOS 7

Установка и настройка Magento 2 on CentOS 7

18 Декабря 2019 | CentOS

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

Установка и настройка Magento 2 on CentOS 7

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

Для установки вам потребуется:

  • Сервер CentOS 7, в соответствии с официальными системными требованиями Magento 2 вам нужно как минимум 2 ГБ оперативной памяти. Если вы используете сервер с менее чем 2 ГБ ОЗУ, вы должны создать файл подкачки .
  • Вы вошли как учетная запись пользователя с привилегиями sudo .
  • Доменное имя, указывающее на IP вашего публичного сервера. В этом уроке мы будем использовать example.com.
  • Установил и настроил Nginx, MySQL и PHP 7.1. 
  • Действительный сертификат SSL. Если у вас его нет, вы можете создать бесплатный SSL-сертификат Lets's Encrypt

Нам нужно сгенерировать ключи доступа для аутентификации доступа к хранилищу кода Magento 2 и сторонним расширениям и темам.

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

Magento 2 совместим с MySQL 5.6 и 5.7, MariaDB 10.x и Percona 5.7. Войдите в MySQL:


mysql -u root -p


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


CREATE DATABASE magento;
GRANT ALL ON magento.* TO magento@localhost IDENTIFIED BY 'P4ssvv0rD';

Мы предполагаем, что вы уже включили репозиторий PHP 7.1 Remi, используя наше руководство.

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


sudo yum install php-mysql php-opcache php-xml php-mcrypt php-gd php-soap php-redis php-bcmath php-intl php-mbstring php-json php-iconv php-fpm php-zip


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

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

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

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


curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

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


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


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


sudo usermod -a -G magento nginx
sudo chmod 750 /opt/magento

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

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


/etc/php-fpm.d/magento.conf
[magento]
user = magento
group = nginx
listen.owner = magento
listen.group = nginx
listen = /run/php-fpm/magento.sock
pm = ondemand
pm.max_children =  50
pm.process_idle_timeout = 10s
pm.max_requests = 500
chdir = /

Сохраните файл и перезапустите службу PHP FPM, чтобы изменения вступили в силу:

sudo systemctl restart php-fpm

Есть несколько способов установить Magento. Избегайте установки Magento из репозитория Github, потому что эта версия предназначена для разработки, а не для производственных установок. В этом уроке мы установим 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: e758ec1745d190520ca246e4e832e12c
      Password:
Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn]


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

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

  • Base и Base secure URLs установлены на https://example.com, измените его с вашим доменом.
  • Администратор Magento:
    • John Doe как имя и фамилия.
    • john@example.com как электронная почта
    • johnкак имя пользователя и j0hnP4ssvv0rDкак пароль.
  • Имя базы данных, имя magentoпользователя magento, пароль P4ssvv0rDи сервер базы данных находятся на том же хосте, что и веб-сервер.
  • 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="P4ssvv0rD"

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

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


[Progress: 485 / 485]
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_1csalp
Nothing to import.

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

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


php ~/public_html/bin/magento cron:install


Мы можем проверить, что crontab установлен, запустив: crontab -l

#~ MAGENTO START adc062915d7b30804a2b340095af072d
* * * * * /usr/bin/php /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/php /opt/magento/public_html/update/cron.php >> /opt/magento/public_html/var/log/update.cron.log
* * * * * /usr/bin/php /opt/magento/public_html/bin/magento setup:cron:run >> /opt/magento/public_html/var/log/setup.cron.log
#~ MAGENTO END adc062915d7b30804a2b340095af072d

Теперь нам нужно только создать новый блок сервера для нашей установки Magento. Мы собираемся включить конфигурацию Nginx по умолчанию, поставляемую с magento:


/etc/nginx/conf.d/example.com.conf
upstream fastcgi_backend {
  server   unix:/run/php-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;

    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;

    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;
}

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


sudo systemctl reload nginx


Наконец, вы должны иметь возможность войти в систему установки Magento, https://example.com/admin_1csalp используя пользователя с правами администратора, который вы указали при запуске установщика Magento.

В этом руководстве вы установили Magento 2 на свой сервер Centos 7. Вы также сгенерировали бесплатный SSL-сертификат Let's encrypt и настроили Nginx в качестве прокси-сервера завершения SSL.



    Комментарии

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

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