2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

LaravelとDockerで環境構築すると【file not found】で詰まった話

Last updated at Posted at 2023-03-04

1. file not found で詰まった際の解決策

タイトルの通りLaravelとDockerで環境構築すると【file not found】で詰まりました。
結論からいうと default.confの設定を誤っていたてめです。
default.confは簡単に説明すると今回サーバーとして採用したNginxの設定ファイルです。

すごく基本的なことでつまずいていたので解説していきます。

環境構築で参考にしたのは以下のサイトです。
https://peblo.gs/laravel-env-with-docker/

2.解決策って結局なんなの?

まずはゴールをイメージしてください。サーバーがファイルを読み取るまでには大きく以下の2つが重要です。

  1. default.confにファイルの居場所を教えてあげる
  2. サーバーが読み取るファイルの位置を理解する。

大きくこの2つが理解できていれば「file not found」のエラーが起きることはありませんでした。
今回の私のケースでいうと以下の通りです。

default.conf
server {
  listen 80;

  root  /var/www/public;
  index index.php;

    ~以下省略~

これが今回私が定義していたrootです。
ですがサーバー側はfileがないと突き返してきます。
file.png

それでは実際にはどこにファイルがあったのでしょうか?
以下の画像の通りpublicの上に laravel というディレクトリが存在しています。
directory.png

ですからこれを以下の通りに修正します。

default.conf
server {
  listen 80;

  root  /var/www/laravel/public;  //laravelを付け足す。
  index index.php;

修正した後に以下のコマンドを実行してdockerをクリーンな状態にします。

  1. docker-compose down
  2. docker-compose up -d

上記のコマンドが実行できたら再度サーバーを立ち上げます。
laravel.png
これで無事エラーは解決しました。

3.補足

詳しい解説はできませんが、「laravelの上にsrcディレクトリがあるじゃん!」と思った方もいるのではないでしょうか?
src.png

上記の画像の通りです。
どういうことなのでしょう?実際にDockerに潜り込んで見てみます。

docker exec -it コンテナ名 bash でDockerに潜入できます。それでは見てみましょう。
docker.png

上記の画像の通りDockerに潜入するとすでにvar/wwwのルートが定義されています。さらに順を追っていくと laravel→public→index.phpと定義されているのが分かりました。
なのでrootが分からない時は以下の通りに順を追ってみましょう。

  1. dockerに潜入
  2. lsコマンドでファイル一覧を表示
  3. cdで指定の位置に移動
  4. 2と3を繰り返してファイルの位置を探す

上記の手順を踏めば大抵のfile not foundは解決できると考えます。

4.まとめ

このようなことが起きないために以下のことを理解しておく必要があります。

  1. 自分が使っているサーバーの設定ファイルのrootが合っているか確認する。
  2. ファイルの位置が分からない時はdockerに潜入してファイルを探す。

大きくはこの2つです。初学者にとって環境構築は分からないことだらけです。挫けずにエラーと向き合いましょう(^^)
ここまでお読みいただきありがとうございました!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?