質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

Q&A

解決済

2回答

9751閲覧

[ Docker / nginx / laravel ] 404 Not Found nginx/1.18.0 と表示されてしまう

nanami0221

総合スコア18

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

VPS

VPS(バーチャル・プライベート・サーバ)は、仮想化されたサーバをレンタルするサービスで、共有サーバでありながら専門サーバと同等の機能を果たします。物理的な専門サーバより安価で提供できるメリットがあります。

0グッド

0クリップ

投稿2021/02/28 23:22

前提・実現したいこと

laravel / docker / nginx / conoha VPS
本番環境で画面を表示させたい。

http://160.251.20.102/

発生している問題・エラーメッセージ

404 Not Found nginx/1.18.0

該当のソースコード

nginx側で、laravelのページを正しく読み込めていないエラーと認識しております。
そのため、nginx/default.confのソースコードを記述させていただきます。
また、念の為、docker-compose.ymlのソースコードも記述しておきます。

conf

1# /root/work/sample/infra/nginx/default.conf 2 3server { 4 listen 80; 5 server_name sample.site 160.251.20.102; 6 root /root/work/sample/backend/public; 7 index index.html index.php; 8 9 add_header X-Frame-Options "SAMEORIGIN"; 10 add_header X-XSS-Protection "1; mode=block"; 11 add_header X-Content-Type-Options "nosniff"; 12 13 charset utf-8; 14 15 location / { 16 #root /root/work/sample/backend/public; 17 #index index.html index.php; 18 try_files $uri $uri/ /index.php?$query_string; 19 } 20 21 location = /favicon.ico { access_log off; log_not_found off; } 22 location = /robots.txt { access_log off; log_not_found off; } 23 24 error_page 404 /index.php; 25 26 location ~ .php$ { 27 try_files $uri =404; 28 fastcgi_pass app:9000; 29 fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; 30 include fastcgi_params; 31 } 32 33 location ~ /.(?!well-known).* { 34 deny all; 35 } 36} 37

yml

1# /root/work/sample/docker-compose.yml 2 3version: "3.12" 4services: 5 app: 6 build: ./infra/php 7 volumes: 8 - ./backend:/work 9 10 # ウェブサーバーコンテナを作る 11 web: 12 #build: ./infra/nginx 13 image: nginx:1.18-alpine 14 ports: 15 - 80:80 16 volumes: 17 - ./backend:/work 18 - ./infra/nginx/default.conf:/etc/nginx/conf.d/default.conf 19 working_dir: /work 20 21 # 追記 22 db: 23 build: ./infra/mysql 24 volumes: 25 - db-store:/var/lib/mysql 26 - ./my.cnf:/infra/mysql/my.cnf 27 command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci 28 29 mysql: 30 image: mysql:8.0.22 31 command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci 32 restart: always 33 environment: 34 - MYSQL_DATABASE=moreclo 35 - MYSQL_USER=user 36 - MYSQL_PASSWORD=password 37 - MYSQL_ROOT_PASSWORD=password 38 ports: 39 - 3306:3306 40 # volumes: 41 # # 初期データを投入するSQLが格納されているdir 42 # - ./db/mysql_init:/docker-entrypoint-initdb.d 43 # # 永続化するときにマウントするdir 44 # - ./db/mysql_data:/var/lib/mysql 45 # tty: true 46 47volumes: 48 db-store:

試したこと

1.dockerの再起動

docker-compose down
docker-compose up -d

2.default.confのserver rootの確認

指定しているディレクトリは正しいかどうかを確認しました。
root /root/work/sample/backend/public;

/root/work/sample/backend/public README.md README.md.orig backend docker-compose.yml index.html infra my.cnf package-lock.json /root/work/sample/backend/public/infra mysql nginx php /root/work/sample/backend/public README.md bootstrap config package-lock.json public server.php vendor app composer.json database package.json resources storage webpack.config.js artisan composer.lock node_modules phpunit.xml routes tests webpack.mix.js

補足情報(FW/ツールのバージョンなど)

Laravel 8.29.0 docker 20.10.3 nginx 1.18.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

以下で解決しました。
rootの設定が誤っていたようです。

conf

1# default.conf 2 3+ root /work/public; 4- root /root/work/sample/backend/public;

投稿2021/03/01 05:38

編集2021/03/01 05:38
nanami0221

総合スコア18

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

まずはWEBサーバが入ってるコンテナにあると思われるnginxのアクセスログやエラーログを見てください。404なら何かしら出ているはずです。そこにおそらくフルパスで存在しないと思われるファイル名が記載されているはずですから、そのファイルが実在するかどうかをまずは確認してください。nginxのDocument Rootのパスの設定、パーミッションなど、なにかしら間違っている可能性が高いです。/root以下にあるのであれば、rootユーザしかそのファイルに到達できないなどの可能性もあり、場合によっては404が出ることもあるかと思います。

この手の不具合に限らずですが、まずは色々出力されるログをしっかり確認することが大事です。

投稿2021/03/01 01:34

AbeTakashi

総合スコア4470

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nanami0221

2021/03/01 02:05

ご丁寧に有難うございます。 早速、確認してみます。 確認出来次第、ご報告させていただきます。
nanami0221

2021/03/01 05:37

エラーログが見つからず、色々操作していたら、以下で解決しました。 # default.conf + root /work/public; - root /root/work/more-clothing/backend/public; お騒がせして申し訳ございません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問