MAATRIX / Блог / VPS для Laravel: PHP-FPM, nginx, очереди и деплой

VPS для Laravel: PHP-FPM, nginx, очереди и деплой

VPS для Laravel: PHP-FPM, nginx, очереди и деплой
Блог MAATRIX · 2026-07-07

Laravel — популярный PHP-фреймворк. На VPS классический стек: nginx + php-fpm + MySQL/PostgreSQL + Redis для cache и queues.

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Стек Laravel на VPS

nginx принимает HTTP, передаёт PHP в php-fpm через fastcgi. Laravel живёт в /var/www/laravel/public как document root.

Composer install --no-dev, php artisan config:cache, route:cache — production оптимизации.

php artisan config:cache объединяет .env в один файл — faster bootstrap; после .env change run config:cache again.

Vite build assets npm run build in deploy script — missing manifest.json breaks mixed CDN/local assets.

Laravel .env never in git — .env.example documents keys without values for onboarding.

Автоматизация deploy через GitHub Actions или GitLab CI снижает human error при ночных релизах — ssh run script reproducible лучше ручного ssh и vim на prod. (Контекст: vps dlya laravel)

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

VPS для сайта

Установка PHP

apt install -y php8.3-fpm php8.3-mysql php8.3-xml php8.3-mbstring php8.3-curl php8.3-redis

Версия PHP должна соответствовать requirements Laravel в composer.json.

Opcache validate_timestamps=0 on production — restart php-fpm after deploy code changes.

Deployer php tool zero-downtime releases shared storage symlink current — popular Laravel VPS pattern alternative git pull.

Практика показывает: большинство инцидентов на VPS связано не с «слабым железом», а с отсутствием мониторинга, бэкапов и дисциплины обновлений — инфраструктура MAATRIX даёт базу, эксплуатация остаётся на вашей стороне. (Контекст: vps dlya laravel)

Telegram-бот для алертов uptime и disk space — минимальный on-call канал, который стоит настроить в первый день после go-live на VPS. (Контекст: vps dlya laravel)

nginx vhost

root /var/www/laravel/public;
location / { try_files $uri $uri/ /index.php?$query_string; }
location ~ \.php$ { fastcgi_pass unix:/run/php/php8.3-fpm.sock; }

fastcgi_param SCRIPT_FILENAME — обязателен для корректного routing.

Supervisor alternative to systemd for queue:works multiple processes — choose one tool consistently.

PHP-FPM pm.max_children calc: available RAM / average PHP process size — avoid OOM kill all workers.

Документируйте шаги настройки в internal wiki или README репозитория infra — через полгода вы забудете, почему выбрали именно такой порт, timeout или размер worker pool. (Контекст: vps dlya laravel)

Права и storage

www-data владелец storage/ и bootstrap/cache/. chmod не 777 — ACL или group www-data.

php artisan storage:link — public disk для uploads.

Laravel Horizon dashboard protect auth middleware — public /horizon exposes queue metrics.

Redis session driver laravel — horizontal scale two VPS same Redis session store behind load balancer.

Staging-окружение на отдельном младшем тарифе MAATRIX позволяет rehearsal миграций и обновлений без риска для production — стоимость staging окупается одним предотвращённым инцидентом. (Контекст: vps dlya laravel)

Очереди

php artisan queue:work — systemd unit с Restart=always. Redis или database driver.

Horizon для Redis — dashboard и supervisor процессов.

Composer --optimize-autoloader --no-dev on production — smaller vendor autoload map.

Laravel Octane Swoole/RoadRunner — advanced persistent PHP cut bootstrap overhead if API latency critical.

NVMe-диск на VPS ускоряет не только базу данных, но и запись логов, session файлов и temporary uploads — latency disk I/O заметна в p95 API даже при низком CPU. (Контекст: vps dlya laravel)

Scheduler

Cron: * * * * * www-data php /var/www/laravel/artisan schedule:run. Один cron entry для всех scheduled tasks.

Separate database user laravel_app without CREATE privilege — limits SQL injection blast radius.

php artisan route:cache и view:cache на production — measurable bootstrap speed improvement.

Комбинация snapshot провайдера и logical backup базы закрывает сценарии «сломали конфиг» и «повредили данные внутри таблицы» — используйте оба слоя, не один. (Контекст: vps dlya laravel)

Оптимизация

OPcache enabled, config/route/view cached. Redis для session и cache.

php artisan optimize — агрегирует кэши после деплоя.

Telescope debug tool disable on production — memory and data leak risk.

Separate queue worker systemd unit per queue name high,default,low — priority jobs not blocked bulk.

При росте нагрузки сначала измерьте bottleneck через metrics, а не увеличивайте тариф наугад — часто хватит индекса в PostgreSQL или Redis cache hot keys. (Контекст: vps dlya laravel)

Нужен сервер под эту задачу?

Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.

VPS для сайта

Обсудить статью, задать вопрос или начать новую тему

Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.

Перейти в сообщество →

Частые вопросы

PHP версия?

8.2+ для Laravel 11.

MySQL или PostgreSQL?

Оба поддерживаются; PostgreSQL — JSON и full-text.

Forge/Ploi?

Панели упрощают; ручной VPS — дешевле.