VPS для Laravel: PHP-FPM, nginx, очереди и деплой
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 — дешевле.