ピックアップ
DockerコンテナでのLaravelのルーティングが404でログも出なかった件
Laravelを使用していて、
Dockerコンテナの環境で、
ネットワークを構築して、
UI側との接続を試していたら
"GET /routing/path HTTP/1.0" 404
のエラーが発生したが、
この件、なぜか調べたときの内容。
Laravelのバージョン
Laravelのバージョンとしては、
php artisan --version
というコマンドで確認すると、
$ php artisan --version
Laravel Framework 9.52.4
というバージョンであることがわかります。
事象
Laravelでのルーティングに関しては、
php artisan route:list
で確認したら、
GET|HEAD /routing/path
が存在するので、
ルーティング設定自体は問題ない。
エラーログ詳細としては、
"GET /routing/path HTTP/1.0" 404
というエラーが起きていた。
調査途中メモ
調査途中で、
Laravelのログを確認しようとしたら、
storage/logs
にログファイルが生成されていない。
コンテナ内の
フォルダの所有権を調整したら、
ログファイルは生成された。
ただし、
php artisan tinker
で、
Log::debug('Test log message');
こちらを試すとログは出るが、
UI側から試しに動かしてアクセスあっても、
ログに出力されず。
Nginxの設定で、
ドメイン指定でホストから動かしていたのを、
server {
listen 80;
server_name localhost;
にしてしまっていたので、
server {
listen 80;
server_name sample.com;
のように修正。
これで、
UI側で、
404ネットワークエラーが開発ツールで出てたのが、
500エラーに変わったので、
進捗ありかなと。
ただ、Laravelのログに何も表示されない。
ログファイルのパーミッションを確認したら、
-rw-r--r-- 1 root root 236 Sep 22 08:28 laravel.log
になってしまっていたので、
-rwxr-xr-x 1 www-data www-data 236 Sep 22 08:28 laravel.log
になるように調整。
これでLaravel側にもログでたので、
ここらから先はなんとかなるので、
調査対応完了。
まとめ
原因としては、
やはり、
基礎的な設定周りのミスが原因だった。
コンテナ初期構築時の設定ファイルそのままにしていた
ということになりますね。
そのため、結果として、
環境変数ファイル、環境後の設定情報に変更
という点と、
そうなるような仕組み作りが大切ですね。
リポジトリ内に準備するファイルを含めて。
おすすめ書籍
コメント一覧
コメントはまだありません。
コメントを残す