Как решить ошибку PHP в Laravel, не меняя версию?
Я столкнулся с проблемой при попытке загрузить свой проект Laravel на мой живой веб-сервер. Все отлично работает на локальном сервере. Но мой локальный сервер работает под управлением PHP 7.2.6, и мой хост-сервер в настоящее время поддерживает только 7.1. Итак, когда я пытаюсь настроить задания cron для моего сервера для запуска запланированных задач Laravel, я получаю эту ошибку:
Ошибка разбора: синтаксическая ошибка, неожиданный "класс" (T_CLASS), ожидаемый идентификатор (T_STRING) или переменная (T_VARIABLE) или "{" или "$" в /home/me/project/artisan в строке 31
Эта строка содержит:
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
И я знаю, что проблема связана с вызовом Kernel::class
, но я не могу изменить версию PHP до 7.2, чтобы решить эту проблему. Итак, есть ли другой обходной путь? Меня беспокоит только то, что, даже если бы я позаботился об этой ошибке, их было бы больше.
1 ответ
Похоже, что ваша ошибка говорит о том, что вы используете PHP <=5.4.
Версия php по умолчанию, используемая cli, может отличаться от версии, используемой для вашего сайта.
Вы можете проверить это, запустив php -v
в командной строке, чтобы увидеть, какую версию он использует. Если это неправильная версия, то вы сможете запустить whereis php
чтобы получить список путей к различным версиям php.
Как только вы нашли правильную версию, вы можете обновить ваш cronjob, чтобы использовать путь к правильному исполняемому файлу php, например
/path/to/php /home/username/path-to-artisan schedule:run > /dev/null 2>&1