文字列や通常のphpファイルは表示できるが、bladeという拡張子がつくとダメだった。
経緯
環境はCentOS7・apache2.4・php5.6。
コンソールからcomposerをインストールし、パスが通っているディレクトリへcomposerを移動。
# curl -sS https://getcomposer.org/installer | php # mv composer.phar /usr/local/bin/composer
composerからlaravel5をインストール。
インストール先はルートディレクトリ上。
# composer create-project laravel/laravel --prefer-dist
とりあえず、/laravel/public/にアクセスしてみる。
初めからviewsディレクトリに入っているwelcom.blade.phpが表示されるはず。
500エラー。表示されない。
何だか知らないが表示されないみたいなので、とりあえず文字列が表示できるかを試してみる。
Route::get('/', function () { return ('welcome'); // ←viewを取り除いた });
routes.phpのreturnからviewを取り除き、”welcome”という文字列がブラウザに表示されるか試してみる。
表示された。
もしや?ということで、今度は単なるphpファイルが表示されるか試してみる。
welcome.blade.phpをwelcome.phpにし、bladeをはずしてみる。
表示された。
bladeファイルだけ表示できねぇ!
パーミッションの設定をしていないな、という事で、
以下のパーミッションの設定をしてみたがダメだった。
# chmod -R 777 storage # chmod -R 777 bootstrap/cache
この後、
welcomeファイル以外のファイルを作成したり、
パーミッション権限を他にも片っ端から与えてみたり、
laravelを再インストールしてみたり、
「よし、laravel5はやめてlaravel4にしよう!」とダウングレードしてみたり、
他にもapacheを設定を弄りすぎて元に戻せなくなったので、CentOSごと再インストールしてみたり、暴れそうになった。
解決
色々調べた結果、
# chcon -R -t httpd_sys_rw_content_t storage # chcon -R -t httpd_sys_rw_content_t bootstrap/cache
これをコンソールに入力してあげると、bladeファイルが表示された。
bladeファイルだけが表示されなかったので、原因を特定するのに物凄く時間がかかってしまった。
後からもう一度インストールして試してみたが、
# chmod -R 777 storage # chmod -R 777 bootstrap/cache # chcon -R -t httpd_sys_rw_content_t storage # chcon -R -t httpd_sys_rw_content_t bootstrap/cache
bladeファイルを表示するには、この四つを実行すると自分の環境の場合うまくいった。
(CentOS7・apache2.4・php5.6)