【发布时间】:2015-12-11 10:58:20
【问题描述】:
我正在开发 laravel 5.1 应用程序,我需要使用 Laravel 任务计划,它在我的本地服务器上运行良好。
但是当我在我的网络托管服务器上使用 cron 作业时,我遇到了这个错误
Parse error: syntax error, unexpected T_CLASS, expecting T_STRING or T_VARIABLE or '$' in /home/titglobal/public_html/ElAQSA/artisan on line 31
这是我服务器中的 Cron 命令
/usr/local/bin/php /home/titglobal/public_html/ElAQSA/artisan schedule:run > /home/titglobal/cron.log 2>&1
注意:我也尝试使用
* * * * * php /path/to/artisan schedule:run >> /dev/null 2>&1
因为 laravel Doc 在 html 页面中提到了同样的错误
我的应用程序使用 PHP 5.6,但网络托管服务器 php v 5.3 中的默认 php 版本
【问题讨论】:
-
这不是 cron 问题。那是你的 php 脚本爆炸了。您可能正在使用 PHP 5.6 的一个特性,而该特性在 5.3 中不存在,除了不使用新的语言特性或将服务器的 PHP 升级到支持该特性的版本之外,您无法修复它.
-
@MarcB:您的诊断是正确的,但在这种情况下“不使用该语言功能”不是一个选项,因为正在使用的框架本身需要 PHP 5.5+。
-
@MarcB:this is line 31 in question。它不是 OP 自己的代码,它是 Laravel 框架的一部分。修改该行只会将错误移动到框架使用现代功能的下一个位置。
-
@JustUser:显然这不是正确的答案,否则您的脚本会正常工作。创建一个仅包含以下内容的 PHP 文件:
<?php echo "PHP version is ", PHP_VERSION;,并设置一个 cron 任务来运行它。检查日志输出以查看它报告的 PHP 版本。如果它报告 5.3,请向您的托管服务提供商展示。 -
@DCoder: 之后托管服务提供商给了我正确的 php 5.5
/usr/local/php55/bin/php路径,现在它正在工作,感谢您的帮助
标签: php laravel cron cpanel laravel-5.1