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
も実行しました。
編集:ここでの実際の解決策は、listen in www.conf
およびfastcgi_pass
nginx構成で一致する必要があります。ソケットを使用するかtcpを使用するかはあなた次第です。
答えは.sock
ファイル。
/etc/php-fpm.d/www.conf
あります:listen = 127.0.0.1:9000
fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
私の場合、/etc/php/7.0/fpm/pool.d/wordpress.conf
正しいセクション
[wordpress]
listen = /var/run/php7-fpm-wordpress.sock
* .sockファイルは、ファイル名ではなくセクション名から作成されます。
私は手遅れを知っていますが、これが役立つかもしれません。 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つ目はロードされませんでした。エラーなし、ソケットなし。
それが誰かを助けることを願っています:)
次のフォルダがあり、書き込み可能であることを確認してください。 /var/run/php-fpm
その後、あなたのwww.conf
あなたが置く: listen = /var/run/php-fpm/php-fpm.sock
次に実行:Sudo service php-fpm restart
nginx.conf
:fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
Sudo service nginx restart
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
お役に立てれば!