Гид по технологиям

Установка Bagisto на Debian 11 (PHP-FPM, Nginx, MariaDB)

• 6 min read • DevOps • Обновлено 27 Nov 2025
Bagisto на Debian 11 — установка и настройка
Bagisto на Debian 11 — установка и настройка

О чём эта инструкция

Эта статья объясняет, как развернуть Bagisto — open-source eCommerce на базе Laravel и Vue.js — на Debian 11 (Bullseye) с использованием PHP-FPM, Nginx и MariaDB. Подробно описаны требования, команды, настройки конфигурационных файлов, часто возникающие ошибки и практические советы для продуктивного деплоя.

Важно: инструкция предполагает, что вы работаете с сервером под управлением Debian 11, имеете пользователя с sudo-привилегиями и домен, указывающий на IP сервера.

Ключевые понятия в одну строку

  • Bagisto — eCommerce-платформа на Laravel; требует PHP, веб-сервера и СУБД.
  • PHP-FPM — менеджер процессов PHP для Nginx.
  • Composer — менеджер зависимостей PHP.
  • MariaDB — форк MySQL, СУБД для хранения данных магазина.

Предварительные условия

  • Сервер с Debian 11 Bullseye (свежая актуализация репозиториев).
  • Пользователь с root/sudo правами.
  • Домен, указывающий на IP сервера (A-запись).
  • Резервная копия важных данных перед изменением конфигурации.

1. Установка LEMP-стека

Bagisto требует PHP 7.4+ и MariaDB 10.2.17+. Пример команд для установки необходимых пакетов и расширений PHP (сохраняйте эти блоки как есть):

sudo apt update
sudo apt install nginx-full mariadb-server php-fpm php-cli php-common php-zip php-mysql php-gd php-intl php-curl php-imap php-mbstring php-xml php-json libpcre3 git unzip -y

После установки отредактируйте оба php.ini (FPM и CLI). В Debian 11 путь к PHP 7.4 может отличаться, проверьте установленную версию и скорректируйте путь при необходимости.

sudo nano /etc/php/7.4/fpm/php.ini
sudo nano /etc/php/7.4/cli/php.ini

Измените опции под ваш сервер:

memory_limit = 512M
max_execution_time = 360
date.timezone = Europe/Moscow

Перезапустите сервис PHP-FPM:

sudo systemctl restart php7.4-fpm

Примечание: если у вас другая версия PHP (8.x), замените пути и сокет (php8.0-fpm.sock и т.д.).

Important: Используйте актуальную версию PHP в репозиториях Debian или из официальных PPA, если вам нужна версия выше 7.4.

2. Базовая защита MariaDB

Запустите вспомогательную утилиту для безопасной настройки MariaDB:

mysql_secure_installation

Ответы в процессе (рекомендуемые):

  • Настройка аутентификации root: нажмите ENTER (или следуйте подсказкам).
  • Переключение на unix_socket_authentication: Y
  • Установка пароля root: Y и укажите сильный пароль.
  • Удаление анонимных пользователей: Y
  • Отключение удалённого входа root: Y
  • Удаление тестовой базы: Y
  • Перезагрузка привилегий: Y

Изменение пароля root MariaDB

Защита MariaDB

Эти действия снижают риски и необходимы для продуктивного сервера.

3. Создание базы и пользователя для Bagisto

Войдите в консоль MariaDB под root и создайте БД и пользователя:

mysql -u root -p

Внутри MariaDB выполните (подставьте надёжный пароль и название БД по вашему стандарту):

CREATE DATABASE bagisto;
CREATE USER bagistouser@localhost IDENTIFIED BY 'BagistoPassword';
GRANT ALL ON bagisto.* TO bagistouser@localhost WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

Создание БД и пользователя Bagisto

Совет: используйте парольный менеджер и не оставляйте пароли в открытых скриптах.

4. Установка Composer

Composer нужен для установки зависимостей PHP-проекта.

Скачайте и проверьте инсталлятор (хеш может измениться — берите актуальный с getcomposer.org):

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

Установите и переместите бинарник:

php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer

Проверьте версию от имени www-data (так как Bagisto будет запускаться от этого пользователя):

sudo -u www-data composer --version

Установка Composer

Если возникнут ошибки сети, проверьте доступ к getcomposer.org и настройки прокси/фаервола.

5. Установка Bagisto через Composer

Создайте директории для кеша и конфигурации Composer и назначьте владельца:

mkdir -p /var/www/{.cache,.config}
sudo chown -R www-data:www-data /var/www/{.cache,.config}

Создайте рабочую директорию для проекта и назначьте владельца:

mkdir -p /var/www/project; sudo chown -R www-data:www-data /var/www/project

Перейдите в неё и установите Bagisto:

cd /var/www/project
sudo -u www-data composer create-project bagisto/bagisto

Загрузка исходников Bagisto

Перейдите в каталог проекта и отредактируйте файл .env:

cd /var/www/project/bagisto
sudo nano .env

Обновите ключевые параметры:

APP_NAME=Bagisto
APP_ENV=production
APP_DEBUG=false
APP_URL=https://www.example.io

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=bagisto
DB_USERNAME=bagistouser
DB_PASSWORD=BagistoPassword
DB_PREFIX=

Сохраните файл и выполните инсталляцию Bagisto:

sudo -u www-data php artisan bagisto:install

Подтвердите установку, набрав “yes” при запросах. Вы увидите уведомления о деплое в production и данные административной учётной записи.

Установка Bagisto

После завершения убедитесь в правах на файлы:

sudo chown -R www-data:www-data /var/www/project/bagisto

Совет: если ваш веб-директориум отличается (например /var/www/html/bagisto), используйте соответствующие пути в конфигурации Nginx и .env.

6. Настройка Nginx

Создайте серверный блок Nginx для вашего домена:

sudo nano /etc/nginx/sites-available/bagisto

Вставьте конфигурацию, заменив example.io на ваш домен и пути к SSL-сертификатам:

server {
    listen 80;
    server_name example.io;
    return 302 https://$server_name$request_uri;
}

server {
  listen 443 ssl http2;

    server_name  example.io;
    root   /var/www/bagisto/public;
    index  index.php;

  ssl_certificate /etc/letsencrypt/live/example.io/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/example.io/privkey.pem;

  ssl_protocols TLSv1.2;
  ssl_prefer_server_ciphers on;
  ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
  ssl_ecdh_curve secp384r1; # Requires nginx >= 1.1.0
  ssl_session_timeout  10m;
  ssl_session_cache shared:SSL:10m;
  ssl_session_tickets off; # Requires nginx >= 1.5.9
  resolver 8.8.8.8 8.8.4.4 valid=300s;
  resolver_timeout 5s;
  add_header X-Frame-Options DENY;
  add_header X-Content-Type-Options nosniff;
  add_header X-XSS-Protection "1; mode=block";

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    client_max_body_size 100M;

    autoindex off;

    location / {
    try_files $uri /index.php$is_args$args;
      }

    location ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
         include fastcgi_params;
         fastcgi_intercept_errors on;
    }
}

Сохраните, активируйте и проверьте конфигурацию:

sudo ln -s /etc/nginx/sites-available/bagisto /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

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

Если nginx -t показывает Syntax OK, перезапуск должен пройти без ошибок.

Замечание: путь root в конфигурации должен указывать на папку public внутри установленных файлов Bagisto. При рассинхронизации путей получите 404 или ошибку 403.

7. Проверка работы

Откройте браузер и перейдите по адресу вашего сайта:

https://www.example.io/

Главная Bagisto

Перейдите в админ-панель:

https://www.example.io/admin

Авторизация по умолчанию: admin / admin123 (рекомендуется изменить сразу после входа).

Страница входа администратора Bagisto

Панель администратора Bagisto

Частые проблемы и способы их решения

  1. 502 Bad Gateway после перезапуска Nginx
  • Проверьте статус php-fpm: sudo systemctl status php7.4-fpm.
  • Убедитесь, что fastcgi_pass указывает на существующий сокет (php7.4-fpm.sock) или порт.
  1. Ошибки прав доступа (403)
  • Убедитесь, что владелец документов www-data и что директории имеют права 755, а файлы 644.
  • Примеры команд:
sudo chown -R www-data:www-data /var/www/project/bagisto
sudo find /var/www/project/bagisto -type f -exec chmod 644 {} \;
sudo find /var/www/project/bagisto -type d -exec chmod 755 {} \;
  1. Ошибки миграций или при выполнении artisan
  • Запускайте artisan от имени www-data: sudo -u www-data php artisan migrate
  1. Composer зависает или падает
  • Проверьте сетевые правила и настройки proxy. Добавьте параметр –prefer-dist при create-project для ускорения.

Рекомендации по безопасности и производительности

  • TLS: используйте Let’s Encrypt для бесплатных сертификатов и автоматического обновления с certbot.
  • HTTP headers: добавьте Content-Security-Policy при необходимости.
  • Rate limiting: настройте nginx limit_req для защиты от брутфорса.
  • Backups: автоматизируйте дампы БД (mysqldump) и архивацию /var/www.
  • Мониторинг: ставьте базовые SLI/SLO для времени ответа и доступности.

Пример быстрой настройки certbot (Debian):

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.io -d www.example.io
sudo systemctl reload nginx

Security hardening — чеклист:

  • Отключить root SSH-login и использовать SSH-ключи.
  • Регулярно обновлять систему: sudo apt update && sudo apt upgrade.
  • Настроить ufw: разрешить 22/80/443 и включить firewall.

Пример правил UFW:

sudo apt install ufw -y
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable

Альтернативные подходы к развёртыванию

  • Docker: контейнеризация Bagisto упрощает переносимость и управление зависимостями.
  • Apache + mod_php: возможный вариант, но для производительности Nginx+PHP-FPM чаще предпочтительнее.
  • Managed hosting: использовать VPS с преднастроенными LEMP-стеками.

План обновления (миграция/апгрейд)

  1. Создайте снапшот или полную резервную копию файлов и БД.
  2. Проверяйте совместимость PHP и зависимостей Bagisto с новой версией.
  3. Локально протестируйте обновление на staging.
  4. Примените обновление на production в окно обслуживания.

Роли и задачи — краткие чеклисты

Системный администратор:

  • Установить и настроить LEMP.
  • Настроить бэкапы и firewall.
  • Настроить мониторинг и алерты.

Разработчик:

  • Настроить окружение dev/staging.
  • Управлять зависимостями с Composer.
  • Писать и тестировать модули/темы для Bagisto.

Маркетолог / менеджер контента:

  • Добавить продукты, категории, описания и изображения.
  • Настроить валюты и локализации.

Тесты и критерии приёмки

  • Сайт доступен по HTTPS и корневая страница возвращает 200.
  • Страница /admin доступна, логин работает с заданными данными администратора.
  • Добавление товара и просмотр карточки товара работают без ошибок.
  • Миграции базы данных применяются успешно.

Короткий глоссарий

  • Bagisto — платформа eCommerce на Laravel.
  • PHP-FPM — FastCGI Process Manager для PHP.
  • Composer — менеджер зависимостей PHP.
  • .env — файл окружения Laravel.

Часто задаваемые вопросы

Как сменить пароль администратора?

В админ-панели перейдите в Users → Edit или выполните artisan команду для смены пароля.

Что делать при ошибке 500?

Проверьте логи Nginx и Laravel: /var/log/nginx/*.error.log и storage/logs/laravel.log. Убедитесь, что APP_DEBUG=false для production, но включите на время отладки.

Можно ли использовать другую СУБД?

Bagisto официально поддерживает MySQL/MariaDB. Использование других СУБД не гарантируется.

Заключение

Поздравляем — вы установили Bagisto на Debian 11 с PHP-FPM, Nginx и MariaDB. Следующие шаги: изменить пароль администратора, настроить SSL, добавить продукты и плагин оплаты, настроить резервное копирование и мониторинг.

Ключевые рекомендации:

  • Не храните пароли в открытых скриптах; используйте менеджер паролей.
  • Тестируйте обновления в staging перед production.
  • Внедрите регулярные бэкапы и мониторинг.

Дополнительно: если вы хотите контейнеризовать Bagisto или использовать CI/CD, можно подготовить Dockerfile и docker-compose для изолированной среды разработки и автоматических деплоев.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро