Laravel по-русски
Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет!
Столкнулся с такой проблемой: Пробую себе локально установить Laravel 13 версии.
После выполнения команды
composer create-project laravel/laravel:^13.0 .Жду когда composer всё скачает и распакует. Потом в браузере открываю
http://localhost:8000/
и вижу вот такую ошибку:
Parse error: syntax error, unexpected token "{", expecting "," or ";" in /var/www/laravel/vendor/symfony/http-foundation/Request.php on line 117И это у только что скачанного фреймворка. Подскажите, что я делаю не так?
Окружение:
php: 8.3.36
Работает это всё внутри Docker-контейнера. Пробовал 12 версию Laravel - с ней проблем не было, а вот с 13 есть.
Было может у кого такое? Как это лечится?
Не в сети
Похоже, что в вашем Docker-контейнере PHP CLI и PHP-FPM (или тот PHP, который обслуживает веб-сервер) — это разные версии. Вы указали php 8.3.36, и команда php -v наверняка показывает 8.3, но браузер запрос обрабатывает через PHP-FPM, который может быть 8.2 или ниже — Laravel 13 использует синтаксис PHP 8.3, и старый парсер на строке 117 в Request.php просто не понимает новый синтаксис, отсюда и unexpected token "{". Проверить это легко: добавьте в начало public/index.php строку die(phpversion()); и обновите страницу — если увидите 8.2.x вместо 8.3.x, значит дело именно в этом. Дальше нужно либо в Dockerfile/конфиге контейнера синхронизировать версию FPM с CLI (поднять до 8.3), либо перенастроить веб-сервер на использование PHP 8.3. И не пытайтесь обойти это через composer install --ignore-platform-reqs — установка пройдёт, но при запуске всё равно упадёт на том же месте.
Не в сети
Страницы 1