私の用語が適切でない場合は、あらかじめお詫び申し上げます。
そこで、Nginx と複数の PHP バージョン (Remi Collet のソフトウェア コレクションを使用) を搭載した Fedora Workstation に仕事用開発マシンを正常にセットアップしました。ポート 9056 で PHP-5.6.30 をリッスンし、ポート 9070 で PHP-7.0.19 をリッスンしています。これは完璧に動作します。
今朝、私は両方のPHPインスタンスをFPMソケットを使って実行してみることにしました。最初はPHP-FPMサービスを再起動するまではうまくいきました(その結果、502不正なゲートウェイブラウザで、そして(13)アクセス拒否nginx error.log にエラーが記録されます。
そこで PHP5.6 を例に挙げると、php56-php-fpm
を生成するサービスを初めて起動したときに/opt/remi/php56/root/var/run/php-fpm/www.sock
、生成されたwww.sock
ファイルのユーザーとグループを に変更しましたnginx:nginx
。再起動後、が にリセットされているphp56-php-fpm
ことがわかりました。確かに、FPM を頻繁に再起動するわけではありませんが、 ファイルに何らかのデフォルトを設定する方法があるはずです。私の fpm conf ファイルは次のようになります。www.sock
root:root
.sock
- /opt/remi/php56/root/etc/php-fpm.d/www.conf:https://pastebin.com/EasyHyEs
- /etc/opt/remi/php70/php-fpm.d/www.conf:https://pastebin.com/dhT8AEJK
- nginx.conf は、:https://pastebin.com/tMuAFnGM
- デフォルト:https://pastebin.com/UjkrcaYw
ローカル開発のためだけにこれを実行していることを考えると、これを正しく動作させるのは面倒なことのように思えるが、そしてポート 9056 と 9070 を使用して、すべて正常に動作しました。ただし、TCP よりもソケットを使用すると速度が向上するという利点があることを読んだことがあります。ローカル開発環境を高速化できるものであれば、努力する価値があります。
私の質問は次のとおりです:
root:root
それぞれの FPM サービスを再起動した後、www.sock がリセットされる原因となっている設定のどこが間違っているのでしょうか?- ポートから離れてソケットに移行する価値は本当にあるのでしょうか?
- [少し話題から外れますが]: Remi Collet のソフトウェア コレクションを使用すると、2 つの PHP パッケージが異なる場所にインストールされることがわかります。
/opt/remi/php56
一貫/etc/opt/remi/php70
性を保つために、どちらか一方をより一般的な場所に移動することを検討する必要がありますか?
ありがとう
答え1
確認すべき点がいくつかあります...
1) CentOS では、デフォルトでは PHP にディレクトリ内の設定ファイルが含まれないのでphp-fpm.d
、ファイルinclude=/opt/remi/php56/root/etc/php-fpm.d/*.conf
内に含まれていることを確認してくださいphp-fpm.conf
。
2) php-fpm プール構成でソケットの所有権を確実に設定する必要があります。例:
[www]
listen = /opt/remi/php56/root/var/run/php-fpm/$pool.sock
listen.owner = someuser
listen.group = somegroup
listen.mode = 0600
答え2
私の場合、remi では、変数を Web サーバーのユーザーにphp80-php-fpm
変更する必要がありました。例:listen.acl_users
../php-fpm.d/www.conf
;comment: replace mywebserveruser with your own user
listen.acl_users = mywebserveruser