Как развернуть Laravel на сервере с WordOps

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-проекта на этом стеке я описывал в заметке о системе тикетов.

Источники и ссылки


Комментарии загружаются…