Как установить СMS Magento 2 на сервер с Linux Ubuntu?
Magento – одна из самых надежных, гибких и масштабируемых систем управления контентом с открытым исходным кодом, которая предлагает обширный набор мощных инструментов для создания e-commerce-сайтов и управления ими. Сегодня мы пошагово рассмотрим, как установить CMS Magento 2 на сервер с ОС Linux Ubuntu 20.04 (Nginx+PHP-FPM+MySQL+Redis+Elasticsearch).
Установка была выполнена на сервере от компании HostPro по тарифному плану «Резвый+» Linux VPS. С характеристиками тарифа вы можете ознакомиться на странице продукта. Обратите внимание, данный тариф — архивный. Актуальные тарифы на мощных NVMe-дисках можно посмотреть тут.
Совместимость программного обеспечения по версиям можно посмотреть на официальном сайте.
Шаг 1 – Устанавливаем веб-сервер Nginx
Чтобы установить веб-сервер Nginx, вводим:
apt install nginx
Для того, чтобы выполнить базовую конфигурацию веб-сервера, открываем в текстовом редакторе основной конфигурационный файл nano /etc/nginx/nginx.conf .
Затем нужно раскомментировать строки в файле конфигурации и добавить следующие значения:
worker_processes auto;
events {
use epoll;
worker_connections 1024;
multi_accept on;
}
access_log off;
error_log /var/log/nginx/error.log crit
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
keepalive_timeout 65;
client_max_body_size 4m;
client_body_timeout 10;
types_hash_max_size 2048;
reset_timedout_connection on;
server_names_hash_bucket_size 64;
Шаг 2 – Устанавливаем MySQL
Приступим к установке системы управления базами данных MySQL:
apt install mysql-server
mysql_secure_installation
Answer Y for yes .
Создаем пользователя и БД Magento 2:
mysql
CREATE USER 'user'@'localhost' IDENTIFIED BY 'password';
CREATE DATABASE db_magento;
GRANT ALL PRIVILEGES ON db_magento.* TO 'user'@'localhost';
flush privileges;
quit
Шаг 3 – Устанавливаем PHP и PHP-FPM
Следующим шагом необходимо установить PHP, PHP-FPM и все необходимые зависимости в данном случае версии 7.4.
Добавляем в репозиторий:
add-apt-repository ppa:ondrej/php
После чего обновляем:
apt update
И устанавливаем:
apt install php7.4-fpm php7.4-mysql php7.4-bcmath php7.4-intl php7.4-soap php7.4-curl php-xml php7.4-gd php7.4-zip
apt install php7.4-bcmath php7.4-common php7.4-curl php7.4-fpm php7.4-gd php7.4-intl php7.4-mbstring php7.4-mysql php7.4-soap php7.4-xml php7.4-xsl
Активируем:
phpenmod mbstring
И редактируем конфигурационные файлы php, как указано на официальном сайте.
Также необходимо перезагрузить nginx и php-fpm:
systemctl reload nginx
systemctl start php7.4-fpm
systemctl enable php7.4-fpm
systemctl status php7.4-fpm
Шаг 4 – Устанавливаем Elasticsearch
Подробную информацию об установке Elasticsearch можно посмотреть здесь.
Для начала нам нужно установить Java:
apt install openjdk-11-jdk
Затем вводим:
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Обновляем репозиторий:
apt update
И устанавливаем Elasticsearch:
apt install elasticsearch
systemctl start elasticsearch
systemctl enable elasticsearch
Шаг 5 – Устанавливаем Redis и Composer
Чтобы установить Redis, вводим:
apt install redis-server
Устанавливаем Composer. Composer является менеджером зависимостей для PHP, с помощью которого можно устанавливать пакеты, необходимые для проекта библиотеки и зависимости.
cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
php composer-setup.php --install-dir=/usr/local/bin --filename=composer --version=1.10.16
Проверяем composer:
composer
Переходим в директорию, где будет находиться наш проект:
cd /var/www/html/
Даем права на владение директорией текущему пользователю:
chown -R $USER:$USER /var/www/html/
Далее вам нужно будет зарегистрироваться на сайте Magento, для того чтобы получить Public Key и Private Key. При установке во время авторизации нам нужны будут эти данные.
Далее нам необходимо создать новый проект Composer для Magento 2:
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento2
Создаем виртуальный хост для нашего сайта:
cp /etc/nginx/sites-available/default /etc/nginx/sites-available/your_domain
nano /etc/nginx/sites-available/your_domain
upstream fastcgi_backend {
server unix:/run/php/php7.4-fpm.sock;
}
server {
listen 80;
listen [::]:80;
set $MAGE_ROOT /var/www/html/magento2;
include /var/www/html/magento2/nginx.conf.sample;
server_name your_domain www.your_domain;
}
Делаем ссылку:
ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
Проверяем конфигурацию на ошибки:
nginx -t
Если syntax is ok, перезагружаем nginx:
systemctl restart nginx
Даем необходимые права текущему пользователю:
cd /var/www/html/magento2
find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
find . -type f -exec chmod 664 {} \; -print && find . -type d -exec chmod 775 {} \; -print
chown -R :www-data .
chmod u+x bin/magento
Теперь всё готово к установке Magento 2. Переходим в директорию с дистрибутивом
cd /var/www/html/magento2 и запускаем команду установки. Значения нужно устанавливать в соответствии с вашими данными.
php bin/magento setup:install --base-url=http://yourdomain \ --db-host=127.0.0.1 --db-name=db_mag2 --db-user=usermag2 --db-password=Password \ --admin-firstname=Magento --admin-lastname=User --admin-email=[email protected] \ --admin-user=admin --admin-password=admin123 --language=en_US \ --currency=USD --timezone=America/Chicago --use-rewrites=1 \ --search-engine=elasticsearch7 --elasticsearch-host=127.0.0.1 \ --elasticsearch-port=9200
По окончанию установки генерируется индивидуальная ссылка в админ-панель Magento 2.
Выполняем команду crontab, чтобы создать cronjob:
crontab -u www-data -e
И добавляем следующую строку:
* * * * * /usr/bin/php /var/www/html/myMagento/bin/magento cron:run | grep -v "Запуск задачи по расписанию" >> /var/www/html/myMagento/var/log/magento.cron.log
Шаг 6 – Конфигурируем Redis
Далее конфигурируем Redis, как указано в инструкции.
Шаг 7 – Устанавливаем SSL-сертификат
Для защиты клиентских данных устанавливаем SSL-сертификат. Приобрести SSL по доступным ценам, а также узнать, как его установить, вы можете на этой странице.
Пример конфигурационного файла виртуального хоста после установки SSL-сертификата:
nano /etc/nginx/sites-available/your_domain
upstream fastcgi_backend {
server unix:/run/php/php7.4-fpm.sock;
}
server {
listen 80;
listen [::]:80;
server_name your_domain www.your_domain;
return 301 https://$your_domain$request_uri;
}
server {
listen 443 ssl;
server_name your_domain www.your_domain;
ssl on;
ssl_certificate /etc/letsencrypt/live/your_domain/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain/privkey.pem;
set $MAGE_ROOT /var/www/magento2;
set $MAGE_MODE developer;
include /var/www/magento2/nginx.conf.sample;
}
Поздравляем! Базовая установка Magento 2 завершена.
Возможно, вас заинтересует
Интеграция OpenCart в CDN
С 1 марта 2020 года услуга CDN хостинга поддерживается в более современном и выгодном...
Обновлено: 07.10.2020
|Как перенести сайт на Битрикс на другой хостинг
Поскольку 1C-Bitrix CMS – русская система, мы обязаны прекратить сотрудничество с ней. Продление использования...
Обновлено: 03.10.2020
|Интеграция WordPress в CDN
С 1 марта 2020 года услуга CDN хостинга поддерживается в более современном и выгодном...
Обновлено: 02.10.2020
|CMS хостинг: возможности и преимущества
Для чего нужна CMS и что такое система управления сайтом CMS (Content Management System)...
Обновлено: 17.07.2020
|
Наш телеграм
с важными анонсами, розыгрышами и мемами
Присоединиться