Как исправить ошибку PHP Parse: синтаксическая ошибка, неожиданное '?', На laravel 5.8 - PullRequest
0 голосов
/ 09 июня 2019

Я размещен в проекте на общем хостинге, где моя папка 'app' находится вне public_html. Версия 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 

Ответы [ 2 ]

3 голосов
/ 09 июня 2019

Вы проверили этот файл в строке 83?

Я сделал, на Github , я вижу единственный знак вопроса в этой строке - ?int в сигнатуре метода.

Я гуглил 15 секунд и обнаружил, что это новая функция в PHP 7.1.Поэтому я проверил composer.json этого пакета и увидел, что для него требуется "php": "^7.1".

Вы уверены, что используете PHP 7.3.5 на этом компьютере?Пожалуйста, вставьте phpinfo(); exit(); в public/index.php и дважды проверьте, потому что эта ошибка является признаком того, что вы используете версию php ниже 7.1

1 голос
/ 10 июня 2019

Ошибка представляет проблему с PHP-скриптами, написанными для PHP 7.X и выше , которые используют более старую версию PHP .

Используемая функция называется оператором Null Coalesce .

Подробнее об этом вы можете прочитать в официальной документации 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 и т. Д.

...