Dockerを使ってLaravelの環境構築をしています。
DockerもLaravelもまだまだ理解が浅いなかで、進めています。
今回、解説したいことは、
・Dockerを使ってLaravelを構築
・トップページは表示 (welcom.blade.php)
・ルーティング、コントローラー、ビューを設定(ミスなく)
・新しく設定したルートをリクエストしても[404 not found]になる ★ココ
という状況です。
DockerのLaravel環境構築は、Qiitaで記載されていた下記を参考にさせて頂きました。
https://qiita.com/A-Kira/items/1c55ef689c0f91420e81
( ほぼ)同じようにセットアップしていきました。
上記問題が発生した際に、確認したことは。
ルーティングの設定です。
最初は、
Laravelのルート設定に問題がないのか確認したのですが、問題ありませんでした。
次に、
Webサーバーの確認です。
Webサーバー は、nginxを使っています。
で、Dockerにて、nginxを設定する際に、default.confで設定していた部分を確認しました。
nginx設定は、基本的にはdefault.confで設定していくそうです。
ここで、ルーティングと関係している部分は、 location です。
元々の設定:
location / { root /var/www/public; index index.html index.php; }
この場合だと、ルートディレクトリのみ表示できる状態です。
下記のように変更すると、設定した他のルートにもアクセスできました。
loacationの設定は 他にも、色々とありそうです。
location / { root /var/www/public; index index.html index.php; try_files $uri $uri/ /index.php?$query_string; }
これを変更したあとは、
再度、
・ビルドを実施。(キャッシュは使わずに)
・コンテナ起動
をして、確認してみましょう。
docker-compose build --no-cache
docker-compose up -d