Як встановити 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-servermysql_secure_installationAnswer Y for yes .
Створюємо користувача та БД Magento 2:
mysqlCREATE 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-zipapt 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 nginxsystemctl start php7.4-fpmsystemctl enable php7.4-fpmsystemctl 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 elasticsearchsystemctl start elasticsearchsystemctl enable elasticsearchКрок 5 – Встановлюємо Redis та Composer
Щоб встановити Redis, вводимо:
apt install redis-serverВстановлюємо Composer. Composer – менеджер залежностей для PHP, за допомогою якого можна встановлювати пакети, потрібні для проекту бібліотеки та залежності:
cd ~curl -sS https://getcomposer.org/installer -o composer-setup.phpphp 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_domainnano /etc/nginx/sites-available/your_domainupstream 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/magento2find 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 {} \; -printchown -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_domainupstream 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
Наш телеграм
з важливими анонсами, розіграшами й мемами
Приєднатися