Как решить ошибку 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
Другие вопросы по тегам