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

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

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

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

nginx

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

解決済

Laravel, nginx, AWS EC2で404エラーになる

error
Error

総合スコア12

Laravel

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

nginx

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

1回答

0リアクション

0クリップ

427閲覧

投稿2022/07/30 15:27

編集2022/07/30 18:06

前提

Laravel9, PHP8.1, nginxで作ったWEBアプリをAWSでデプロイしたいです。
nginxを起動すると、パブリックIPで404エラーが出ます。

該当のソースコード

以下の記事を参考にnginxの設定ファイルを作成しました。
ちなみに、初期設定だとnginxのページがちゃんと表示されていました。
https://qiita.com/yyy752/items/9cec9c44e8a389cb9c18

nginx.conf

user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; # Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 4096; include /etc/nginx/mime.types; default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; server { listen 80; listen [::]:80; server_name _; root /var/www/app/public; add_header X-Frame-Options "SAMEORIGIN"; add_header X-Content-Type-Options "nosniff"; index index.php; charset utf-8; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; error_page 404 /404.html; location = /404.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }

試したこと

$ ls public/ css favicon.ico images index.php js mix-manifest.json phpinfo.php robots.txt storage $ ls -l public/ drwxrwxrwx 5 ec2-user ec2-user 171 7月 30 13:28 public $ sudo systemctl status nginx.service ● nginx.service - The nginx HTTP and reverse proxy server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2022-07-30 15:37:28 UTC; 1h 13min ago Process: 7636 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS) Process: 7632 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS) Process: 7631 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS) Main PID: 7638 (nginx) CGroup: /system.slice/nginx.service ├─7638 nginx: master process /usr/sbin/nginx └─7639 nginx: worker process
  • $ sudo groupadd www
  • $ sudo usermod -a -G www ec2-user
  • $ sudo chown -R root:www /var/www
  • $ sudo chmod 2775 /var/www
  • /var/www/app$ chmod -R 777 storage
  • /var/www/app$ chmod -R 777 bootstrap/cache

var/log/error.log

2022/07/30 17:31:16 [crit] 8549#8549: *2 connect() to unix:/run/php-fpm/www.sock failed (2: No such file or directory) while connecting to upstream, client: 119.82.177.188, server: _, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/www.sock:", host: "パブリックIP" 2022/07/30 17:31:16 [error] 8549#8549: *2 open() "/var/www/app/public/50x.html" failed (2: No such file or directory), client: 119.82.177.188, server: _, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/www.sock", host: "パブリックIP"

エラーを読んで、記事を漁っていたらLaravel側のエラー説が出てきました。

storage/logs/laravel.log

[2022-07-31 03:02:17] local.ERROR: Target class [App\Models\post] does not exist. {"exception":"[object] (Illuminate\\Contracts\\Container\\BindingResolutionException(code: 0): Target class [App\\Models\\post] does not exist. at /var/www/sugi-ura/src/vendor/laravel/framework/src/Illuminate/Container/Container.php:877)

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

mike2mike4

2022/07/30 15:49 編集

まあ、基本的な質問ですが、 /var/www/app/public以下にindex.php置いてますか? 404はファイルが見当たらないときに出ます。
error

2022/07/30 15:49

置いてあります。
error

2022/07/30 15:51 編集

$ ls public/ css favicon.ico images index.php js mix-manifest.json phpinfo.php robots.txt storage
mike2mike4

2022/07/30 16:02

/var/www/app/publicのパーミッションを教えてください
error

2022/07/30 16:03

drwxrwxrwx 5 ec2-user ec2-user 171 7月 30 13:28 public こうなってます!
error

2022/07/30 16:08

- $ sudo groupadd www - sudo usermod -a -G www ec2-user - sudo chown -R root:www /var/www - sudo chmod 2775 /var/www 上記のコマンドも実行済みです
mike2mike4

2022/07/30 16:58

EC2に環境作ってやってみました。 ご提示のURLから sudo yum install php php-devel php-opcache php-mbstring php-xml これやって、設定しました? 取りあえず私はここで寝ます。
error

2022/07/30 17:02

しました! 夜分遅いにも関わらずありがとうございます!
error

2022/07/30 17:19

調べて質問の一番下に追記しました!

まだ回答がついていません

会員登録して回答してみよう

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Laravel

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

nginx

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

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。