繁体   English   中英

如何修复PHP Parse错误:Laravel 5.8上的语法错误,意外的'?'

[英]How to fix PHP Parse error: syntax error, unexpected '?', on laravel 5.8

我已经在共享主机上的共享主机上托管了项目,我在public_html之外的“ app”文件夹是php版本是7.3.5,我遇到的问题是..我创建了一个cron作业来自动备份项目数据库,但是我一直在获取我的日志中存在此错误;

[08-Jun-2019 21:04:01 UTC] PHP Parse error:  syntax error, unexpected '?', expecting variable (T_VARIABLE) in /home/username/app-folder/vendor/zendframework/zend-diactoros/src/functions/marshal_uri_from_sapi.php on line 83 

我正在使用spatie / laravel-backup。

我的cron设置为

*   *   *   *   *   php /home/username/app-folder/artisan backup:run 

您是否已在第83行检查了该文件?

我确实在Github上看到该行上唯一的问号是方法签名中的一个?int

我用Google搜索了15秒,发现它是PHP 7.1的新功能 所以我检查了该软件包的composer.json ,发现它需要"php": "^7.1"

您确定在该计算机上运行PHP 7.3.5吗? 请放一个phpinfo(); exit(); phpinfo(); exit(); 在您的public/index.php并再次检查,因为该错误是您运行的php低于7.1版本的症状

该错误表示使用旧版本PHP的 PHP 7.X及更高版本 编写的PHP脚本存在问题。

使用的功能称为空合并运算符

您可以在此处从PHP的官方文档中了解更多相关信息-https: //www.php.net/manual/en/migration70.new-features.php#migration70.new-features.null-coalesce-op

您使用的cron直接调用php二进制文件,这是WHM / cPanel使用的默认版本

如果您知道PHP二进制文件的直接路径,则可以在设置cron时直接调用它,例如:

*   *   *   *   *   php /home/username/app-folder/artisan backup:run 

对于没有CloudLinux的服务器:

*   *   *   *   *   /opt/cpanel/ea-php70/root/usr/bin/php /home/username/app-folder/artisan backup:run 

对于使用CloudLinux的服务器:

*   *   *   *   *   /opt/alt/php70/usr/local/bin/php /home/username/app-folder/artisan backup:run 

*注意:您可以在上面的两个示例路径中更改hte php70字符串,并安装其他任何PHP 7.X版本,适用于PHP 7.1-php71等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM