ピックアップ
DockerコンテナでのLaravelのルーティングが404でログも出なかった件(Nginxの設定重複ミス)
Laravelを使用していて、
Dockerコンテナの環境で、
ネットワークを構築して、
UI側との接続を試していたら、
Nginxに
GET /api-endpoint HTTP/1.0" 404 "http://ui-domain.sample/のエラーが発生したが、
この件、なぜか調べたときの内容。
Laravelのバージョン
Laravelのバージョンとしては、
php artisan --versionというコマンドで確認すると、
$ php artisan --version
Laravel Framework 9.52.4というバージョンであることがわかります。
この件と違うが関連メモ
この件とは違うが、
404出て、
Laravelのログが出力できないことがあり、
単純ミスだった時のメモ。
DockerコンテナでのLaravelのルーティングが404でログも出なかった件(ログの権限設定ミス)
事象
コンテナを立ち上げて、
別コンテナで動かしているアプリケーションから、
LaravelのAPIをアクセスして動かそうとしたけれど、
GET /api-endpoint HTTP/1.0" 404 "http://ui-domain.sample/のエラーが発生
php artisan route:listで確認しても、
対象のルーティングは存在するので、
ルーティング設定自体は問題ない。
調査途中メモ
調査途中で、
Laravelフォルダの権限かと考え、
chown -R www-data:www-data /target-project-folderを実施したが、
特に改善なし。
そもそも、
元々動いていたコンテナではあったので、
特に設定ファイルを変えた記憶はない。
また、
ホスト側から、
curl http://localhost:8888/end-pointのように、
直接、呼び出して確認したら動く。
これを考えると、
コンテナ内でNginx動かしているが、
そこのプロキシで、
うまくLaravelに辿り着いていない可能性がある。
対応(Nginxの設定重複)
原因としては、
やはり、
基礎的なNginx設定周りのミスが原因だった。
コンテナ初期構築時の設定ファイルが読み込まれていた
ということになりますね。
まず、
Nginxが読み込んでいる全ての設定内容は、
表示コマンド
nginx -Tこちらで確認できるので、
確認してみると、
自分が使用したいと思っている設定情報と違いました。
中身だけでなく、
対象ファイルは、
確認コマンド
nginx -T 2>&1 | grep '^# configuration file'こちらで確認できます。
# configuration file /etc/nginx/conf.d/sample.conf:
# configuration file /etc/nginx/sites-enabled/default:自分の環境では、
上記の1つ目の方を使いたかったですが、
2つ目の初期設定情報も残っていたため、
そちらが使われていたようでした。
私の場合は、
/etc/nginx/sites-enabled/defaultを削除して、
必要な方を残す対応をしました。
こちらで、
nginx -s reloadすることで解決しました。
おすすめ書籍
コメント一覧
コメントはまだありません。




コメントを残す