メモ

Laravel 5.6でpublicフォルダのデモ画面が表示されない時はphpバージョンをチェック!

Localhost

最新版(2018/2/12現在)のLaravel 5.6.3を新しくインストールして、MAMPからいつもどおりにpublicフォルダにアクセスすると500エラーが発生して、デモ画面が表示されなくなりました。

私の場合はMacのローカル環境をMAMPで使っています。

最初にpublicフォルダへアクセスすると下記のデモ画面が表示されるはずなのですが、

http://localhost/larevel_project_folder/public/

Laravel

500エラーが出て表示されなくなりました。

Storage/logs/laravel.log

を見たところ、下記のエラー。

[2018-02-12 04:31:58] local.ERROR: Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) at /Users/laravel_project_folder/vendor/symfony/routing/Route.php:53)

該当するvendor/symfony/routing/Route.php 53行目をチェックしたところ

    public function __construct(string $path, array $defaults = array(), array $requirements = array(), array $options = array(), ?string $host = '', $schemes = array(), $methods = array(), ?string $condition = '')

との表示。

ちなみに、

・php artisan serveをやるとちゃんと表示されました。
・過去の自分が作ったLaravelプロジェクトもpublicフォルダで表示されました

PHPのバージョンの問題?

なんとなく、phpのバージョンの問題のような感じ。

環境としては

MAMPのPHP : 7.0.15

MAMP

MACのPHP : HP 7.2.0RC6

laravel

どちらも、PHP7以上になっているので問題ないかと思いきや、下記の記事を発見。

Laravel5.6 は PHP7.1 が必要そう – Qiita

つまり、MAMPのPHPはバージョンが7.0.15だったのでうまく動かず、php artisan serveだとMACのPHP 7.2が動くので表示されたような感じです。

MAMPのPHPで7.1を使えるようにする

なので、MAMPのPHPを7.1に変更します。

変更方法は下記のサイトを参考にしました。

OS X 無料版の MAMP で PHP のバージョンを標準から変更する方法 | kazumich.log

自分のMAMPのPHPバージョンは7.0.15と7.1.1を選択。

Php

ここで、MAMPを終了して再起動。

MAMP

localhost/MAMPでもPHPバージョンを確認。

MAMP 🔊

PHP7.1.1に変更してpublicフォルダにアクセス

Laravel 🔊

無事に表示されました。

まとめ

ここ1ヶ月程Laravelから離れていたのですが、AtomのNuclideも繋がらなくなるし、Laravelもアップデートしているしで、実際に開発にとりかかるまで時間がかかってしまいました。

NuclideでUnable to connect to server サーバー側のアップデートも必要だった

NuclideでAuthentication failed. Try entering your password

今回はPHPのバージョンの問題ですが、Laravelの開発は最新の情報に触れていないと一気に取り残される感覚があるので、ブランクが空いてしまう時は注意が必要ですね。