はじめに
Docker環境でのLaravelプロジェクト作成時、画面に「File not found」とエラーが表示されてしまいました。
この問題を解決するためには、「default.conf」内のルーティングを確認します。
環境
Docker version 24.0.7
Laravel v9.52.16 (PHP v8.2.7)
問題
$ docker compose exec php bash
$ composer create-project --prefer-dist "laravel/laravel=" .
ターミナルからDockerのPHPコンテナ内でLaravelプロジェクトを作成します。
そしてローカルホストにアクセスし、動作確認をしてみると…
「File not found(ファイルが見つかりません)」と言われてしまいました。
解決法
server {
listen 80;
listen [::]:80;
root /var/www/html/public; // ルート設定
index index.php; // 読み取るファイル名
//以下略
上記default.confファイル内で、index.phpを読み込んでもらうためのルート設定が間違っていました。
ディレクトリ構造は上記のようになっているので、publicの前のnichが抜けています。
server {
listen 80;
listen [::]:80;
root /var/www/html/nich/public; // "nich"を付け足す
index index.php;
//以下略
「その上位のsrcは入れなくていいの?」と思う方もいるかもしれません。
しかし正しくは上記通り「/var/www/html/nich/public」となります。
というのもphp/Dockerfile内で、以下のようにカレントディレクトリが設定されているためだと思われます。
# コンテナ内で作業する際のカレントディレクトリの指定
WORKDIR /var/www/html
よって、自分の場合はこれに「nich/public」と付け足すことで、無事に解決することができました。
参考