簡體   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