【发布时间】:2018-07-23 06:50:47
【问题描述】:
我检查了我的 php 版本:
PHP 7.0.27 (cli)(构建时间:2018 年 1 月 23 日 09:07:32)(NTS)
版权所有 (c) 1997-2017 PHP Group
Zend Engine v3.0.0,版权所有 (c) 1998-2017 Zend Technologies
但这是做cron作业时出现的错误
解析错误:语法错误,意外的 T_CLASS,在 /path_to_project/artisan 行 31 X-Powered-By: PHP/5.3.29 内容类型:text/html
我用它来测试这段代码
<?php
class Foo{}
echo Foo::class;
?>
输出为:Foo
工匠文件
#!/usr/bin/env php
<?php
require __DIR__.'/bootstrap/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
$status = $kernel->handle(
$input = new Symfony\Component\Console\Input\ArgvInput,
new Symfony\Component\Console\Output\ConsoleOutput
);
$kernel->terminate($input, $status);
exit($status);
我是这样运行的:
* * * * * php /path_to_project/artisan schedule:run >> /path_to_project/log.txt
* * * * * php-cli -q /path_to_project/artisan schedule:run >> /path_to_project/log.txt
如何解决此错误?
【问题讨论】:
-
那么第 31 行是什么?你能发布相关的sn-p吗?如果不显示相关代码,很难看出错误在哪里。
-
更新错误不是因为工匠文件属于 laravel 的代码
-
快速搜索发现很多类似的问题,都指向旧的PHP版本:stackoverflow.com/questions/32205590/…
-
询问您的房东。我猜你的 CLI 配置为使用特定的 PHP,可能是通过
.profile或.bash_profile,而cron不使用该配置文件。
标签: php laravel laravel-5 laravel-5.2 laravel-5.3