ピックアップ

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側にもログでたので、

ここらから先はなんとかなるので、

調査対応完了。

まとめ

原因としては、

やはり、

基礎的な設定周りのミスが原因だった。

コンテナ初期構築時の設定ファイルそのままにしていた

ということになりますね。

そのため、結果として、

環境変数ファイル、環境後の設定情報に変更

という点と、

そうなるような仕組み作りが大切ですね。

リポジトリ内に準備するファイルを含めて。

ピックアップ

おすすめ書籍

コメント一覧

コメントはまだありません。

コメント送信

コメントを残す

広告

おすすめ記事