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

Благодаря таким функциям, как привлечение покупателей, гибкая модульная архитектура и масштабируемость и производительность корпоративного уровня, Magento является платформой выбора для большинства онлайн-продавцов.
Для установки вам потребуется:
- Сервер CentOS 7, в соответствии с официальными системными требованиями Magento 2 вам нужно как минимум 2 ГБ оперативной памяти. Если вы используете сервер с менее чем 2 ГБ ОЗУ, вы должны создать файл подкачки .
- Вы вошли как учетная запись пользователя с привилегиями sudo .
- Доменное имя, указывающее на IP вашего публичного сервера. В этом уроке мы будем использовать
example.com
. - Установил и настроил Nginx, MySQL и PHP 7.1.
- Действительный сертификат SSL. Если у вас его нет, вы можете создать бесплатный SSL-сертификат Lets's Encrypt
Пара ключей доступа Magento
Нам нужно сгенерировать ключи доступа для аутентификации доступа к хранилищу кода Magento 2 и сторонним расширениям и темам.
Если у вас нет учетной записи в Magento Marketplace, вы можете создать ее здесь . После создания учетной записи ознакомьтесь с этими инструкциями о том, как создать новый набор ключей доступа.
Создать базу данных MySQL
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
Мы предполагаем, что вы уже включили репозиторий 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
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
Далее нам нужно настроить PHP и создать пул FPM для нашего magento
пользователя.
Откройте ваш текстовый редактор и создайте следующий файл:
[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. Избегайте установки 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 crontab
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
Настройка Nginx
Теперь нам нужно только создать новый блок сервера для нашей установки Magento. Мы собираемся включить конфигурацию Nginx по умолчанию, поставляемую с magento:
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.
Комментарии
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.