如何在不更改版本的情况下解决 Laravel 中的 PHP 错误?
How to solve a PHP error in Laravel without changing the version?
我在尝试将我的 Laravel 项目上传到实时网络服务器时遇到了 运行 问题。一切都在本地服务器上完美运行。但是,我的本地服务器是 运行ning PHP 7.2.6,而我的主机服务器此时只支持 7.1。因此,当我尝试为我的服务器设置 cron 作业以 运行 我的 Laravel 计划任务时,我收到此错误:
Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /home/me/project/artisan on line 31
这一行包含:
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
我知道问题与调用 Kernel::class
有关,但我无法将 PHP 版本更改为 7.2 来解决此问题。那么,还有另一种解决方法吗?我唯一担心的是,即使我解决了这个错误,还会有更多错误。
您收到的错误似乎表明您正在使用 PHP <=5.4.
cli 使用的 php 默认版本可能与您网站使用的版本不同。
您可以通过 运行ning php -v
在命令行上查看它使用的是哪个版本。如果它是错误的版本,那么您应该能够 运行 whereis php
获取不同 php 可用版本的路径列表。
找到正确的版本后,您可以更新您的 cronjob 以使用正确的 php 可执行文件的路径,例如
/path/to/php /home/username/path-to-artisan schedule:run > /dev/null 2>&1
我在尝试将我的 Laravel 项目上传到实时网络服务器时遇到了 运行 问题。一切都在本地服务器上完美运行。但是,我的本地服务器是 运行ning PHP 7.2.6,而我的主机服务器此时只支持 7.1。因此,当我尝试为我的服务器设置 cron 作业以 运行 我的 Laravel 计划任务时,我收到此错误:
Parse error: syntax error, unexpected 'class' (T_CLASS), expecting identifier (T_STRING) or variable (T_VARIABLE) or '{' or '$' in /home/me/project/artisan on line 31
这一行包含:
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
我知道问题与调用 Kernel::class
有关,但我无法将 PHP 版本更改为 7.2 来解决此问题。那么,还有另一种解决方法吗?我唯一担心的是,即使我解决了这个错误,还会有更多错误。
您收到的错误似乎表明您正在使用 PHP <=5.4.
cli 使用的 php 默认版本可能与您网站使用的版本不同。
您可以通过 运行ning php -v
在命令行上查看它使用的是哪个版本。如果它是错误的版本,那么您应该能够 运行 whereis php
获取不同 php 可用版本的路径列表。
找到正确的版本后,您可以更新您的 cronjob 以使用正确的 php 可执行文件的路径,例如
/path/to/php /home/username/path-to-artisan schedule:run > /dev/null 2>&1