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

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

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

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Amazon EC2

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

解決済

nginxでphpが動かない

k.t.est
k.t.est

総合スコア49

nginx

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Amazon EC2

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

1回答

0グッド

1クリップ

8494閲覧

投稿2020/03/19 09:34

編集2020/03/20 01:40

Amazon linux2にPHPとnginxをインストールして動かそうとしたのですが、
エラーが出て動かず(404エラー)、困っております。

/var/log/nginx/error.logのエラー内容は下記の通りです。

error

1FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 10.0.4.80, server: ドメイン, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/run/php-fpm/php-fpm.sock:", host: "ドメイン"

nginx, php-fpm周りの設定ファイルの状況を下記致します。

/etc/nginx/nginx.conf server { location / { root /var/www/html; index index.php; } location ~ .php$ { root /var/www/html; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
/etc/php-fpm.d/www.conf user = nginx group = nginx listen = /var/run/php-fpm/php-fpm.sock listen.owner = nginx listen.group = nginx listen.mode = 0660
/etc/nginx/conf.d/php-fpm.conf upstream php-fpm { server unix:/var/run/php-fpm/php-fpm.sock; }

php

1//アクセスするphpファイル 2<?php 3phpinfo(); 4?>

/etc/nginx/conf.dのディレクトリにはphp-fpm.confファイルしかない状態です。
何か初歩的な見落としがあると思うのですが、お気付きの点をご指摘頂ければ幸甚で御座います。
どうぞ宜しくお願い申し上げます。
(ちなみにhtmlファイルだと表示できる状態です。)

PHPバージョン : 7.3
NGINXバージョン : 1.16.1

追記

/etc/php-fpm.d/www.confを編集して、owner/groupをnginxに変更したのですが、
実際に、/var/run/php-fpm/php-fpm.sockのパーミションを確認したところ、

ls -l /var/run/php-fpm/php-fpm.sock srw-rw----+ 1 root root 0 Mar 18 08:41 /var/run/php-fpm/php-fpm.sock

となっており、rootのままとなっておりました。
これはwww.confファイルの編集が有効になっていないということでしょうか?
sudo systemctl restart php-fpmを実行してもowner/groupは変わりませんでした。

追記2

https://qiita.com/2no553/items/e1b85b48412bc4559240
こちらの記事を参考に、listen.acl_usersをコメントアウトしたところ、

ls -l /var/run/php-fpm/php-fpm.sock srw-rw---- 1 nginx nginx 0 Mar 20 01:33 /var/run/php-fpm/php-fpm.sock

無事 owner/group共にnginxとなりました。
しかしながら、状況変わらず404エラーのままでphpファイルは読み込めない状態です。

なお、再起動をしてphp-fpmのerror.logを確認したところ、何もエラーはないようでした。

/var/log/php-fpm/error.log [20-Mar-2020 01:33:26] NOTICE: Terminating ... [20-Mar-2020 01:33:26] NOTICE: exiting, bye-bye! [20-Mar-2020 01:33:26] NOTICE: fpm is running, pid 5215 [20-Mar-2020 01:33:26] NOTICE: ready to handle connections [20-Mar-2020 01:33:26] NOTICE: systemd monitor interval set to 10000ms

以下のような質問にはグッドを送りましょう

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

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

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

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

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

yukky1201

2020/03/19 12:59 編集

<?php phpinfo(); ?> を書いたindex.phpファイルを作ってアクセスしてみてください
k.t.est

2020/03/20 00:35

ご指摘ありがとう御座います。phpinfo();と記載したindex.phpファイルにアクセスしてみたのですが、同様の結果となりました。

回答1

0

ベストアンサー

以下のようにroot設定位置を変更してみてください。

server { root /var/www/html; location / { index index.php; } location ~ .php$ { fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }

投稿2020/03/20 04:20

yukky1201

総合スコア2732

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

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

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

このような回答には修正を依頼しましょう。

回答へのコメント

k.t.est

2020/03/20 04:28

ご指摘の通りに修正しましたら、無事表示することができました!ありがとう御座いました! なんで私の書き方ではまずいのかがいまいち分からないです。。。
yukky1201

2020/03/20 04:30

設定位置のせいで、$document_rootにパラメータが反映されないそうです
k.t.est

2020/03/20 04:31

そういうことがあるんですね。。。勉強になりました!ありがとう御座います!

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

ただいまの回答率
86.12%

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

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

質問する

関連した質問

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

nginx

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

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Amazon EC2

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