Знижка 20% на українські домени. Промокод UA-20 діє до 26.10.22

Замовити

Як встановити CMS Magento 2 на сервер з Linux Ubuntu?

Magento – одна з найбільш надійних, гнучких та масштабованих систем керування контентом з відкритим вихідним кодом, що пропонує великий набір потужних інструментів для створення e-commerce-сайтів та управління ними. Сьогодні ми крок за кроком розглянемо, як встановити CMS Magento 2 на сервер з ОС Linux Ubuntu 20.04 (Nginx+PHP-FPM+MySQL+Redis+Elasticsearch).

Встановлення було здійснено на сервері від компанії Hostpro на тарифному плані “Жвавий+”  Linux VPS. З характеристиками тарифу ви можете ознайомитись на сторінці продукту – https://hostpro.ua/ua/linux-vps.html.

Сумісність програмного забезпечення за версіями можна переглянути на офіційному сайті.

Крок 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

Перевіряємо Сomposer:

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 {} \;
find . -type d -exec chmod 775 {} \;
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 [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, як зазначено в https://devdocs.magento.com/guides/v2.4/config-guide/redis/redis-pg-cache.html.

Крок 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/example.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

        set $MAGE_ROOT /var/www/magento2;
        set $MAGE_MODE developer;
        include /var/www/magento2/nginx.conf.sample;
}     

Вітаємо! Базове встановлення Magento 2 завершено.

Можливо, вас зацікавить

post thumbnail

Інтеграція OpenCart в CDN

З 1 березня 2020 року послуга CDN хостингу підтримується в більш сучасному і вигідному...

Viktoriya Mazur | Оновлено: 15.09.2021

post thumbnail

Як перенести сайт на Бітрікс на інший хостинг

Бітрікс – це чи не єдина з популярних CMS, що має внутрішні інструменти для...

Diana Honcharenko | Оновлено: 22.09.2021

post thumbnail

Інтеграція WordPress в CDN

З 1 березня 2020 року послуга CDN хостингу підтримується в більш сучасному і вигідному...

Viktoriya Mazur | Оновлено: 14.09.2021

post thumbnail

CMS хостинг: можливості та переваги

1. Для чого потрібна CMS і що таке система управління сайтом CMS (Content Management System)...

Diana Baranovska | Оновлено: 11.01.2022