web-dev-qa-db-ja.com

php-fpmが.sockファイルを作成しない

Amazon LinuxでAWSサーバーを実行しています。

このガイドを使用してphp7(ページの下部)をインストールしました: https://forums.aws.Amazon.com/thread.jspa?messageID=695576

Apacheの代わりにnginxを使用したいので、php70w-fpmおよびnginxパッケージもインストールしました。ただし、service start php-fpmを実行しても、サーバーのどこにもphp-fpm.sockファイルが作成されません。/var/runをチェックインし、find / -name "*.sock"のみを返す/var/run/rpcbind.sockも実行しました。

10
Kezaia

編集:ここでの実際の解決策は、listen in www.confおよびfastcgi_pass nginx構成で一致する必要があります。ソケットを使用するかtcpを使用するかはあなた次第です。

答えは.sockファイル。

/etc/php-fpm.d/www.confあります:

listen = 127.0.0.1:9000

だから私のnginx設定に私が入れました

fastcgi_pass 127.0.0.1:9000;

のようなものを使用する代わりに

fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
2
Kezaia

私の場合、/etc/php/7.0/fpm/pool.d/wordpress.conf正しいセクション

[wordpress]
listen = /var/run/php7-fpm-wordpress.sock

* .sockファイルは、ファイル名ではなくセクション名から作成されます。

1
Corni

私は手遅れを知っていますが、これが役立つかもしれません。 Pythonを使用して、最初から新しいロックファイルを作成できます。

python -c "import socket as s; sock = s.socket(s.AF_UNIX); sock.bind('/run/php/php-fpm.sock')"

エラーが発生しました。pool.d/ xx.confをコピーアンドペーストし、新しいプールには同じプール名が[何でも]含まれていたため、2つ目はロードされませんでした。エラーなし、ソケットなし。

それが誰かを助けることを願っています:)

0
Phil
  1. 次のフォルダがあり、書き込み可能であることを確認してください。 /var/run/php-fpm

  2. その後、あなたのwww.conf あなたが置く: listen = /var/run/php-fpm/php-fpm.sock

  3. 次に実行:Sudo service php-fpm restart

  4. 次に、nginx.conffastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
  5. そして最後にnginxを再起動します:Sudo service nginx restart
0

Php-fpmがsystemdによって制御されている場合は、php-fpmサービスユニットファイルのPrivateTmpオプションを確認する必要があります(この方法でこのファイルを作成できますfind /etc/systemd -name "php-fpm*" ! -type d

このオプションがtrueに設定されている場合PrivateTmp=true、php-fpmマスタープロセス用に新しいファイルシステム名前空間が作成され、他のプロセスはデフォルトでこの名前空間のファイルを操作できなくなります(たとえば、nginx)。 systemd PrivateTmpオプションの詳細については、こちらをご覧ください。 https://www.freedesktop.org/software/systemd/man/systemd.exec.html

お役に立てれば!

0
Kirzilla