2017-09-01 17 views
7

Kiedy utworzyć nowy projekt laravel, przeglądarka wyświetla błąd 500. Znalazłem to w dzienniku:Błąd analizy składni PHP: błąd składni, nieoczekiwane "?" w helpers.php 233

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

kod w 233:

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

Ale wiem, operator zerowy koalescencyjny (??) jest obsługiwana z PHP 7.0

My Wersja PHP:

PHP 7.1.8-2 + ubuntu14.04.1 + deb .sury.org + 4 (CLI) (powierzchnia: 04 sierpień 2017 14:34:05) (NTS) Copyright (c) 1997-2017 Grupa PHP Zend v3.1.0 silnika, Copyright (c) 1998-2017 Zend technologie z Zend OPcache v7.1.8-2 + ubuntu14.04.1 + deb.sury.org +4, Copyright (c) 1999-2017, przez Zend Technologies

laravel wersja: 5.5.0

Kto wie co się stało?

+0

sprawdzanie wersji php dla mnie działało (miał na 5.x, potrzeba 7.x) – mewc

Odpowiedz

17

Gdybym miał zgadywać, powiedziałbym zainstalowano PPA 7.1.8 jak tylko CLI (php7-CLI). Dostaniesz swoje informacje o wersji z tym, ale pakiet libapache2-mod-php jest wciąż 14.04 główny, który jest 5,6. Sprawdź swoje phpinfo w przeglądarce, aby potwierdzić wersję. Możesz także rozważyć migrację do Ubuntu 16.04, aby uzyskać PHP 7.0 w wersji głównej.

+0

ukończyłem oczyść wszystkie php 5.6 i 7.1 i ponownie zainstalowałem 7.1, niż wszystko jest ok, dziękuję. –

+0

Pracowałem dla mnie. Zaktualizuj wersję php na serwerze i wszystko działa dobrze. Dzięki! – johnnyfittizio

+1

Dziękuję bardzo, oszczędziłeś mi wiele frustracji. Naprawdę nienawidzę tych szczegółów konfiguracji serwera, to jest los gorszy od śmierci. –

1

Jeśli natknąłem tego błędu podczas korzystania z linii poleceń jego ponieważ trzeba używać php 7 wykonać bez względu na to, którą próbujesz wykonać. Stało się tak, że kod próbuje użyć operatora, który jest dostępny tylko w php7 + i powoduje błąd składni.

Jeśli masz już php 7+ na komputerze spróbuj wskazując linię poleceń do wyższej wersji PHP, którego chcesz użyć.

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

Oto dokładna lokalizacja, która pracowała w oparciu off z mojej konfiguracji dla odniesienia:

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

W ów operator faktycznie spowodował złamanie jest „null operator COALESCE” można przeczytać więcej na ten temat tutaj :

php7 New Operators

-1

Jeśli nowo zmodernizowane wersję php może być zapomnieć, aby ponownie uruchomić usługę serwera WWW.

3

miałem w przybliżeniu ten sam problem z laravel 5.5 na ubuntu, w końcu znalazłem rozwiązanie here Aby przełączać się między wersjami PHP używanych przez apache:

  1. sudo a2dismod php5
  2. sudo a2enmod php7.1
  3. apache2 restart usługi sudo

i działa

0

Ten problem jest dlaczego używasz VirtualHost i upewnij się, że używasz PHP 7.0 na -WampSerwer.

Powiązane problemy