MAATRIX / Блог / 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.

Стек 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 для сайта

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

PHP версия?

8.2+ для Laravel 11.

MySQL или PostgreSQL?

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

Forge/Ploi?

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