Установка и настройка Bagisto (Laravel)
Bagisto разворачивается на стандартном LEMP-стеке. Установка занимает от нескольких часов до 1-2 рабочих дней с учётом конфигурации окружения, настройки почты, платёжных методов и первичного импорта данных.
Требования к серверу
| Компонент | Минимум | Рекомендуется |
|---|---|---|
| PHP | 8.1 | 8.2+ |
| MySQL / MariaDB | 8.0 / 10.3 | MySQL 8.0 |
| Composer | 2.x | 2.x |
| Node.js | 16 | 18 LTS |
| RAM | 1 GB | 2 GB+ |
Расширения PHP: BCMath, Ctype, cURL, DOM, Fileinfo, JSON, Mbstring, OpenSSL, PCRE, PDO, Tokenizer, XML, GD или Imagick.
Установка через Composer
composer create-project bagisto/bagisto:^2.2 myshop
cd myshop
cp .env.example .env
Редактируем .env:
APP_URL=https://myshop.example.com
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=bagisto
DB_USERNAME=bagisto_user
DB_PASSWORD=secret
CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
Запуск установщика:
php artisan bagisto:install
Команда выполняет миграции, сидеры, публикует ассеты и создаёт первого администратора. После — сборка фронтенда:
npm install
npm run build
Настройка Nginx
server {
listen 80;
server_name myshop.example.com;
root /var/www/myshop/public;
index index.php;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
После настройки SSL через Certbot: certbot --nginx -d myshop.example.com.
Настройка очередей (Supervisor)
Bagisto активно использует очереди для отправки писем, генерации инвойсов и webhook-уведомлений.
[program:bagisto-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/myshop/artisan queue:work redis --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/myshop/storage/logs/worker.log
stopwaitsecs=3600
supervisorctl reread
supervisorctl update
supervisorctl start bagisto-worker:*
Первичная конфигурация в панели администратора
После входа по /admin настраиваются:
Каналы и локали
Канал — это отдельная "витрина" магазина с собственным доменом, валютой и языком. Для мультиязычного магазина создаётся один канал с несколькими локалями.
Налоги
Каталог → Налоги → Налоговые категории — создаём категории (например, НДС 20%). Затем привязываем к группам налогоплательщиков и регионам через Налоговые ставки.
Методы доставки
Встроенные: FlatRate, Free Shipping. Для СДЭК или Почты России потребуется пакет или кастомный провайдер — подключается в config/carriers.php.
Методы оплаты
Встроенные: Cash On Delivery, Money Transfer, PayPal. Кастомные шлюзы регистрируются в config/paymentmethods.php и реализуют интерфейс Webkul\Payment\Payment.
Настройка почты
MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=secret
MAIL_ENCRYPTION=tls
[email protected]
MAIL_FROM_NAME="Мой Магазин"
Шаблоны писем публикуются командой:
php artisan vendor:publish --tag=bagisto-mail-views
После — редактируются в resources/views/vendor/shop/emails/.
Крон для планировщика
* * * * * cd /var/www/myshop && php artisan schedule:run >> /dev/null 2>&1
Планировщик отвечает за очистку корзин, генерацию sitemap и обновление курсов валют (если подключён провайдер).
Права на директории
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data /var/www/myshop
После установки — чеклист
- Проверить
php artisan config:cache && php artisan route:cache - Настроить резервное копирование БД (cron + mysqldump или
spatie/laravel-backup) - Установить Redis и проверить подключение через
php artisan tinker→Redis::ping() - Проверить отправку почты через тестовый заказ
- Настроить мониторинг очередей — Laravel Horizon (
composer require laravel/horizon) - Проверить генерацию sitemap по адресу
/sitemap.xml







