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

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

新規登録して質問してみよう
ただいま回答率
85.54%
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というインフラから提供する商用サービスです。

Q&A

解決済

1回答

2390閲覧

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

error

総合スコア13

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というインフラから提供する商用サービスです。

0グッド

0クリップ

投稿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

1user nginx; 2worker_processes auto; 3error_log /var/log/nginx/error.log; 4pid /run/nginx.pid; 5 6# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic. 7include /usr/share/nginx/modules/*.conf; 8 9events { 10 worker_connections 1024; 11} 12 13http { 14 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 15 '$status $body_bytes_sent "$http_referer" ' 16 '"$http_user_agent" "$http_x_forwarded_for"'; 17 18 access_log /var/log/nginx/access.log main; 19 20 sendfile on; 21 tcp_nopush on; 22 tcp_nodelay on; 23 keepalive_timeout 65; 24 types_hash_max_size 4096; 25 26 include /etc/nginx/mime.types; 27 default_type application/octet-stream; 28 29 # Load modular configuration files from the /etc/nginx/conf.d directory. 30 # See http://nginx.org/en/docs/ngx_core_module.html#include 31 # for more information. 32 include /etc/nginx/conf.d/*.conf; 33 34 server { 35 listen 80; 36 listen [::]:80; 37 server_name _; 38 root /var/www/app/public; 39 40 add_header X-Frame-Options "SAMEORIGIN"; 41 add_header X-Content-Type-Options "nosniff"; 42 43 index index.php; 44 45 charset utf-8; 46 47 location / { 48 try_files $uri $uri/ /index.php?$query_string; 49 } 50 51 location ~ \.php$ { 52 fastcgi_pass unix:/run/php-fpm/www.sock; 53 fastcgi_index index.php; 54 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 55 include fastcgi_params; 56 } 57 58 location ~ /\.(?!well-known).* { 59 deny all; 60 } 61 62 # Load configuration files for the default server block. 63 include /etc/nginx/default.d/*.conf; 64 65 error_page 404 /404.html; 66 location = /404.html { 67 } 68 69 error_page 500 502 503 504 /50x.html; 70 location = /50x.html { 71 } 72 }

試したこと

$ 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

12022/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" 22022/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" 3

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

storage/logs/laravel.log

1[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)

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

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

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

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

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

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

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

回答1

0

自己解決

今回、php-fpmではなくphp81-fpmをインストールしていました。
かつ、Laravel側のエラーも出ていました。
https://qiita.com/maip0902/items/2fae4944e0115b40dcdc

投稿2022/07/30 18:29

error

総合スコア13

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.54%

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

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

質問する

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

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というインフラから提供する商用サービスです。