Настройка Nginx для Magento

Игорь Грегорченко

Magento – это открытая платформа управления интернет-магазинами.

Система достаточно требовательна к ресурсам, так что популярный магазин будет генерить большую нагрузку на железо. Поэтому стоит использовать Nginx и Magento вместе.

Требования

Прежде чем приступить к установке Magento, нужно иметь установленный Nginx с [http://nginx.org/ru/docs/http/ngx_http_fastcgi_module.html ngx_http_fastcgi_module], MySQL, PHP не ниже версии 5.5 и модули php-fpm, php-cli, php-mysql, php-curl, php-gd.

Установка

Для работы Magento требуется установить Composer:

curl -sS https://getcomposer.org/installer | php

# Перемещение файла

mv composer.phar /usr/bin/composer

# Проверка работы

composer -v
## Загрузка и установка Composer

После этого можно [https://www.magentocommerce.com/download скачать] и разместить Magento в нужной директории:

tar -xzvf 2.1.0.tar-gz

mv magento2-2.1.0/ /var/www/magento2/
## Размещение системы в /var/www/magento2/

Теперь можно установить систему. Для этого [http://devdocs.magento.com/guides/v2.1/install-gde/bk-install-guide.html существует несколько методов], мы воспользуемся консолью:

cd /var/www/magento2/

bin/magento setup:install –backend-frontname=”adminlogin” # URI для доступа к панели администратора

–db-host=”localhost” # Адрес БД (IP, localhost или URL с портом)

–db-name=”magentodb” # Имя БД

–db-user=”magentouser” # Пользователь БД

–db-password=”magentouser@” # Пароль для доступа к БД

–language=”en_US” # Язык панели администратора

–currency=”USD” # Валюта по умолчанию

–timezone=”America/New_York” # Часовой пояс

–use-rewrites=1 # Используется перезапись ссылок веб-сервером

–use-secure=0 # Включение TLS/SSL

–base-url=”http://www.newshop.com” # Адрес сайта

–base-url-secure=”https://www.newshop.com” # HTTPS-адрес сайта

**–admin-user=adminuser ** # Администратор Magento

**–admin-password=admin123@ ** # Пароль администратора

**–admin-email=admin@newshop.com ** # e-mail администратора

**–admin-firstname=admin ** # Имя пользователя

**–admin-lastname=user ** # Фамилия пользователя

–cleanup-database
## Установка Magento с дополнительными параметрами, выделенные обязательны

Конфигурация Nginx

Для начала нужно создать файл конфигурации для платформы /etc/nginx/sites-available/magento.conf и заполнить его. Блок server будет иметь вид:

server {

listen 80;

**server_name newshop.com www.newshop.com;**

root /var/www/magento2;

}
## Укажите свой домен

Первый блок location:

location / {

index index.html index.php;

**try_files $uri $uri/ @handler;**

**expires max;**

}

location ^~ /app/ { deny all; }

location ^~ /includes/ { deny all; }

location ^~ /lib/ { deny all; }

location ^~ /media/downloadable/ { deny all; }

location ^~ /pkginfo/ { deny all; }

location ^~ /report/config.xml { deny all; }

location ^~ /var/ { deny all; }

## Передает URI, если путь не существует, указывает срок жизни кэша, запрещает доступ к внутренним директориям

Далее нужно указать доступ к директории export:

location /var/export/ {

auth_basic “Restricted”;

**auth_basic_user_file htpasswd;**

autoindex on;

}
## Разрешает доступ для пользователя, указанного в файле /etc/nginx/htpassword

Дополнительные блоки location:

location /. {

return 404;

}

location @handler {

rewrite / /index.php;

}

location ~ .php/ {

rewrite ^(.*.php)/ $1 last;

}
## Закрывает доступ к скрытым файлам, передает скрипты

Параметры php-fpm:

location ~ .php$ {

try_files $uri $uri/ /index.php last;

expires off;

fastcgi_pass unix:/tmp/php5-fpm.sock;

fastcgi_param HTTPS $fastcgi_https;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

fastcgi_param MAGE_RUN_CODE default;

fastcgi_param MAGE_RUN_TYPE store;

fastcgi_buffer_size 128k;

fastcgi_buffers 256 4k;

fastcgi_busy_buffers_size 256k;

fastcgi_temp_file_write_size 256k;

}
## Указывает стандартные параметры fastcgi и дополнительные буферы, чтобы избежать распространенных ошибок

Осталось активировать хост:
ln -s /etc/nginx/sites-available/magento.conf /etc/nginx/sites-enabled/

systemctl restart nginx
## Создает ссылку на файл конфигурации и перезагружает сервер

Самое главное

Связка Nginx + Magento позволит получить максимальную производительность. Используйте также Varnish и Memcache для ускорения проектов.

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023