Як встановити CMS 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
Перевіряємо С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 {} \; -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
|
Наш телеграм
з важливими анонсами, розіграшами й мемами
Приєднатися