php_modが非推奨になったのね

昔のバージョンのphp環境でphpバージョンを上げるという対応中。 apache + PHP8のインスタンスを構築してドキュメントルートまで到達を確認。 対応する人にドキュメントルートまで到達するからプロジェクトのファイルを置いてバージョンアップのエラーを確認してもらうため依頼しましたが HTTP 503 Service Unavailable のエラーが出ているとのこと。 HTMLファイルはアクセスできているからPHPの実行ができていないと思い調べると Apache HTTP サーバーで使用するために PHP に提供されている mod_php モジュールが非推奨になりました。 php-fpmをインストールして起動し、リクエストを流してphp-fmpでphpを実行するようにして解決。 しばらくPHPを触っていなかったのでモジュールが非推奨になったことに気づかずでした。

nginx + php TCPでアクセスできなかった時のメモ

nginx + php TCPでアクセスできなかった時のメモ

環境
nginx 1.13.8
php 7.0

表題の件ですが結論から言うと
初めてnginxを使ったので設定の仕方がわからず間違っていた。。。
(まぁ大体理由なんてこんなもんです・・・)
間違っていた箇所はTCPにしたいなら

例えばnginxの設定ファイル
/etc/nginx/conf.d/default.conf
location ~ \.php$ {
・・・省略・・・
}
なんかでfastcgi_passをunixソケットではなく
fastcgi_pass   127.0.0.1:9000;
#fastcgi_pass   unix:/var/run/php/php-fpm.sock;
みたいにするんですが、
(unixソケットの方はここでわかりやすいように残しています)

php-fpm の設定で例えば
/etc/php/fpm/pool.d/www.conf
の中で

listen = /run/php/php7.0-fpm.sock

listenがphp-fpmになっているからダメだったと思います。

listen = 127.0.0.1:9000
;listen = /run/php/php7.0-fpm.sock

結論的にこことfpmのwww.confのlisten.ownerとlisten.groupを以下のようにして

listen.owner = nginx
listen.group = nginx

アクセスできるようになったので原因はここかと思います。
後にデフォルトの
listen.owner = www-data
listen.group = www-data
これに戻してアクセスしましたが普通にできました。

逆にunixソケットの場合はコメントアウトしている箇所が入れ替わる感じです。
unixソケットの場合はlisten.owner listen.groupはnginxになるかもしれません。調べているときにunixソケットの場合はそんな記事を見かけたのでこの設定をTCPなんですけどいじってみたというオチです。

こんなことベテランの方からしたら何やってんの?と言う感じでしょうが未経験なので躓きついでのメモ

コメント

このブログの人気の投稿

nginxで画像が表示されない。。

AWSのS3バケットをマウントするs3fsでマウントが外れた件

CakePHP3でHTTPSにする