最新版(2018/2/12現在)のLaravel 5.6.3を新しくインストールして、MAMPからいつもどおりにpublicフォルダにアクセスすると500エラーが発生して、デモ画面が表示されなくなりました。
私の場合はMacのローカル環境をMAMPで使っています。
最初にpublicフォルダへアクセスすると下記のデモ画面が表示されるはずなのですが、
http://localhost/larevel_project_folder/public/
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
MACのPHP : HP 7.2.0RC6
どちらも、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を選択。
ここで、MAMPを終了して再起動。
localhost/MAMPでもPHPバージョンを確認。
PHP7.1.1に変更してpublicフォルダにアクセス
無事に表示されました。
まとめ
ここ1ヶ月程Laravelから離れていたのですが、AtomのNuclideも繋がらなくなるし、Laravelもアップデートしているしで、実際に開発にとりかかるまで時間がかかってしまいました。
NuclideでUnable to connect to server サーバー側のアップデートも必要だった
NuclideでAuthentication failed. Try entering your password
今回はPHPのバージョンの問題ですが、Laravelの開発は最新の情報に触れていないと一気に取り残される感覚があるので、ブランクが空いてしまう時は注意が必要ですね。