2017-09-01 1 views
7

Wenn ich ein neues Laravel Projekt erstellen, zeigt der Browser einen Fehler 500. ich dies im Protokoll gefunden:PHP-Parse-Fehler: Syntaxfehler, unerwartete '?' in helpers.php 233

PHP Parse error: syntax error, unexpected '?' in vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 233

der Code in 233:

return app('cache')->get($arguments[0], $arguments[1] ?? null); 

Aber wie ich weiß, wird von PHP 7.0

Meine PHP Version unterstützt null Koaleszierstruktur Operator (??):

PHP 7.1.8-2 + ubuntu14.04.1 + deb .sury.org + 4 (cli) (gebaut: 4. August 2017 14:34:05) (NTS) Copyright (c) 1997-2017 Die PHP-Gruppe Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies mit Zend OPcache v7.1.8-2 + ubuntu14.04.1 + deb.sury.org + 4, Copyright (c) 1999-2017, die von Zend Technologies

Laravel Version: 5.5.0

Wer weiß, Was ist passiert?

+0

Überprüfung der PHP-Version für mich arbeitete (hatte auf 5.x, brauche 7.x) – mewc

Antwort

17

Wenn ich raten müsste, würde ich sagen, dass Sie die PPA 7.1.8 nur als CLI installiert haben (php7-cli). Du bekommst deine Versionsinformation davon, aber dein libapache2-mod-php-Paket ist immer noch 14.04 main, was 5.6 ist. Überprüfen Sie Ihre phpinfo in Ihrem Browser, um die Version zu bestätigen. Sie könnten auch in Betracht ziehen, auf Ubuntu 16.04 zu migrieren, um PHP 7.0 in main zu erhalten.

+0

ich fertig Purge alle PHP 5.6 und 7.1, und neu installieren 7.1, als alles in Ordnung ist, danke. –

+0

Arbeitete für mich. Update PHP-Version auf dem Server und alles funktioniert jetzt gut. Vielen Dank! – johnnyfittizio

+1

Vielen Dank, du hast mir viel Frust erspart. Ich hasse diese Serverkonfigurationsdetails wirklich, es ist ein Schicksal fast schlimmer als der Tod. –

1

Wenn Sie bei der Verwendung der Befehlszeile auf diesen Fehler gestoßen sind, müssen Sie php 7 verwenden, um auszuführen, was auch immer Sie ausführen möchten. Was passiert ist, ist, dass der Code versucht, einen Operator zu verwenden, der nur in PHP7 + verfügbar ist und einen Syntaxfehler verursacht.

Wenn Sie bereits PHP 7+ auf Ihrem Computer haben, versuchen Sie, die Befehlszeile auf die höhere Version von PHP zu richten, die Sie verwenden möchten.

export PATH=/usr/local/[php-7-folder]/bin/:$PATH 

Hier ist die genaue Lage, die von meinem Setup-Referenz basierend bearbeitetem

export PATH=/usr/local/php5-7.1.4-20170506-100436/bin/:$PATH 

Die Betreiber das ist tatsächlich verursacht die Unterbrechung der „Null coalesce Operator“ ist man hier lesen kann es mehr über :

php7 New Operators

-1

Wenn Sie neu Ihre pHP-Version aktualisiert haben könnten Sie sein vergessen Ihren Webserver-Dienst neu zu starten.

3

Ich hatte ungefähr das gleiche Problem mit Laravel 5.5 auf ubuntu, schließlich habe ich eine Lösung gefunden here zwischen den Versionen von PHP von Apache verwendet wechseln:

  1. sudo a2dismod php5
  2. sudo a2enmod php7.1
  3. sudo Service apache2 Neustart

und es funktioniert

0

Dieses Problem ist, warum Sie Virtual verwenden und stellen Sie sicher, dass Sie PHP 7.0 auf WampServer läuft.

Verwandte Themen