web-dev-qa-db-ja.com

php7.0-fpm.sockはどこにありますか

ディレクトリ構造を持つ単純なプロジェクトがあります

drupalサイト、およびfastcgi_passサイトにnginx configを設定しています。127.0.0.1:9000を使用していますが、このconfで提案されているようにUNIXソケットを使用します。

 # PHP 7 socket location.
   fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;

しかし、php/php7.0-fpm.sock;が見つかりません

CentOSディストリビューションには次のパスがあります

/var/run/php-fpm/php-fpm.pid
14
hidar

ソケットを作成するphp-fpm configを確認します。

$ cat /etc/php/7.0/fpm/pool.d/www.conf

listenを探します。例:

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

php-fpmソケットファイルを作成しますafterプロセスを開始しました。

Sudo service php7.0-fpm stop
Sudo service php7.0-fpm start

ソケットファイルが作成された場合、ディレクトリを確認します。

$ cd /run/php && ls -la

20
BenRoob

最初にphp-fpmがシステムで実行されているかどうかを確認します。これを行うには、たとえば次のようにpgrepを使用できます。

# pgrep -fa php-fpm
5666 php-fpm: master process (/etc/php-fpm.conf)
5667 php-fpm: pool www
5668 php-fpm: pool www
5669 php-fpm: pool www
5670 php-fpm: pool www
5671 php-fpm: pool www

この場合、設定ファイル/etc/php-fpm.confが稼働中であることを示しています。構成ファイルをチェックしてlisten =ディレクティブをチェックする前に、次のようにすばやく /proc/net/unix を調べることができます。

# grep php /proc/net/unix

次のような結果が返される場合があります。

ffff8800bfb2f400: 00000002 00000000 00010000 0001 01 28561 /tmp/php-fpm.sock

この場合、php-fpmソケットのパスが/tmp/php-fpm.sockにあることを示します。この場合、/etc/php-fpm.d/www.confのc​​onfを確認することで確認できます:listen= /tmp/php-fpm.sock

結果が得られず、php-fpmが実行されている場合、設定を確認することで、TCP=

listen = 127.0.0.1:9000

提案されたconfのようなUnixソケットでリッスンするために変更できるもの:

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

一部のLinuxディストリビューションでは、通常これが使用されます。

listen.owner = www-data
listen.group = www-data
listen.mode = 0660

構成を変更した後、サービスsystemctl restart php-fpmを再起動することを忘れないでください。ソケットが作成されたことを確認するには、次のようにします。

$ file /var/run/php/php7.0-fpm.sock

ソケットが存在する場合、次のようなものを出力する必要があります。

/var/run/php/php7.0-fpm.sock: socket
11
nbari

実行して見ることができます

$ ss --unix |grep 'php' 
2
Breign

古いlibpcre3がインストールされ、php7.0パッケージの依存関係を満たしている可能性がありますが、新しいライブラリパッケージのみがpcre_jit_stack_freeを提供します。

この場合は、apt-get install libpcre3を実行すると、準備完了です。

参照: https://github.com/oerdnj/deb.sury.org/issues/372

これがあなたのお役に立てば幸いです。

1