WordOps обычно используют для WordPress, но он умеет создавать и обычные PHP-сайты с Nginx, PHP-FPM и MariaDB. Этого достаточно, чтобы запустить Laravel.
Установка WordOps
WordOps поддерживает Ubuntu и Debian. Установка одной командой:
wget -qO wo wops.cc && sudo bash wo
Создание сайта
Создаём сайт с PHP и базой MySQL (WordOps ставит MariaDB):
sudo wo site create example.ru --mysql --php83
Данные для подключения к базе WordOps сохранит в /var/www/example.ru/wo-config.php. Сразу можно выпустить сертификат Let’s Encrypt, добавив --letsencrypt.
Установка Laravel
Composer WordOps ставит вместе со стеком. Проект разворачиваем в каталог сайта:
cd /var/www/example.ru sudo rm -rf htdocs sudo -u www-data composer create-project laravel/laravel htdocs
В htdocs/.env укажите данные базы из wo-config.php, затем выполните:
cd htdocs sudo -u www-data php artisan key:generate sudo -u www-data php artisan migrate
Настройка Nginx
Laravel отдаёт сайт из папки public. В /etc/nginx/sites-available/example.ru поменяйте корень:
root /var/www/example.ru/htdocs/public;
Правило try_files $uri $uri/ /index.php?$query_string; в стандартной конфигурации WordOps для PHP уже есть. Проверяем и перезагружаем Nginx:
sudo nginx -t && sudo wo stack reload --nginx
Права
Laravel пишет в storage и bootstrap/cache:
sudo chown -R www-data:www-data /var/www/example.ru/htdocs
Если права «поедут», поможет инструкция по восстановлению прав в WordOps. Пример реального Laravel-проекта на этом стеке я описывал в заметке о системе тикетов.
