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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

nginx

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

PHP

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

Q&A

解決済

1回答

1276閲覧

Nginxとphp-fpmの連携が上手くいかない

tsukagon

総合スコア30

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

nginx

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

PHP

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

0グッド

0クリップ

投稿2022/07/27 02:32

前提

お試しでAWSでWebサーバーを構築しています
・Windows10+Nginx+php-fpmの構成です。
・ログインシステムを搭載した簡単なWebページを作成しています。
・Cの下にnginxとphpのフォルダを配置しています。
・nginx>htmlフォルダ内にindex.htmlやindex.phpを配置しています。
・独自ドメインを取得し、ブラウザから
https://www.〇〇〇.com
で検索してindex.htmlを閲覧出来ています。

実現したいこと

ログインフォームを作成しindex.phpという名前でindex.htmlに配置しました。そこでこのページに
https://www.〇〇〇.com/index.php
でブラウザからアクセス出来るようにしたいです。

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

前日までアクセス出来ていましたがアクセス出来なくなりました。
以下がブラウザからアクセスしたときのエラーメッセージです。

An error occurred. Sorry, the page you are looking for is currently unavailable. Please try again later. If you are the system administrator of this resource then you should check the error log for details. Faithfully yours, nginx.

今回設定時に変更したのはnginxのconfファイルのPHPに関する部分だけです。前日までアクセス出来ていたことを考えると何が原因で失敗しているのか分からず混乱しています。
nginxとphp-fpmの起動は確認出来ているため設定の問題ではないかと考えています。
参考として以下にnginx.confを記します。

該当のソースコード

#user nobody; worker_processes 1; #error_log logs/error.log; error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; 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 logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.php; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # proxy the PHP scripts to Apache listening on 127.0.0.1:80 # #location ~ \.php$ { # proxy_pass http://127.0.0.1; #} # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } # another virtual host using mix of IP-, name-, and port-based configuration # #server { # listen 8000; # listen somename:8080; # server_name somename alias another.alias; # location / { # root html; # index index.html index.htm; # } #} # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }

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

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

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

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

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

CHERRY

2022/07/27 04:06

nginx や php-fpm のログファイルには どのようなメッセージが記録されているでしょうか。
tsukagon

2022/07/27 06:33 編集

前回正常に動作していた時のnginxのアクセスログは 10.0.0.47 - - [15/Jul/2022:07:51:14 +0000] "GET /index.php HTTP/1.1" 200 673 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0" となっていました。しかしそれ以降のアクセスログを見ても、https://www.〇〇〇.com/index.php でアクセスしているのにもかかわらずindex.phpに関するログは一つも見られませんでした。
CHERRY

2022/07/27 06:48 編集

質問に書かれた ブラウザのメッセージの部分に > If you are the system administrator of this resource then you should check the error log for details. のように「check the error log for details.」と書かれているのですから、 error log に詳細が記録されていると思うのですが...
tsukagon

2022/07/27 07:23

見る部分間違えていました。エラーログは 2022/07/27 07:08:46 [error] 5032#576: *51 connect() failed (10061: No connection could be made because the target machine actively refused it) while connecting to upstream, client: 127.0.0.1, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost" でした。 nginx側で記述したphp-fpmのポート番号が実際にphp-fpmでlistenするポート番号と異なっているということなのでしょうか、、、
yukky1201

2022/07/27 17:15

php(php-cgi.exeだと予想します)の起動コマンドを提示してください
tsukagon

2022/07/28 00:37

起動コマンドでハッとしました。 これまでphp-cgi.exeを直接クリックして起動していましたが start php-cgi.exe -b 127.0.0.0.1:9000で起動すると上手くいきました。 前回起動時はデフォルトで127.0.0.1:9000で起動していたのですが変わってしまうことがあるのでしょうか?(本題からそれるようなので別で質問するべきかもしれませんが…)
guest

回答1

0

自己解決

コマンドプロンプトで

start php-cgi.exe -b 127.0.0.0.1:9000

でポート番号を指定してあげると意図したとおりに動くようになった。

投稿2022/07/29 02:10

tsukagon

総合スコア30

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問