Где находится php7.0-fpm.sock
У меня есть простой проект со структурой каталогов
Я настраиваю конфигурацию nginx для моего сайта drupal, а для fastcgi_pass
я использовал 127.0.0.1:9000
но я хочу использовать unix-сокет, как это предлагается в этом conf:
# 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
Ответы
Ответ 1
Проверьте конфигурацию php-fpm, где сокет будет создан:
$ cat/etc/php/7.0/fpm/pool.d/www.conf
Посмотрите listen
, например:
listen =/run/php/php7.0-fpm.sock
php-fpm создает файл сокета после запуска процесса.
sudo service php7.0-fpm stop
sudo service php7.0-fpm start
Проверьте каталог, если был создан файл сокета:
$ cd/run/php && ls -la
Ответ 2
Сначала проверьте, работает ли 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- /tmp/php-fpm.sock
находится в /tmp/php-fpm.sock
который можно проверить, проверив conf в /etc/php-fpm.d/www.conf
в этом случай: listen=/tmp/php-fpm.sock
Если вы не получите никакого результата, а php-fpm
запущен и запущен, проверьте конфигурацию, которую вы можете найти, используя значения по умолчанию, путем перечисления в сокете TCP:
listen = 127.0.0.1:9000
Что-то, что вы могли бы изменить, чтобы прослушивать Unix-сокет, как ваш предлагаемый conf:
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
Ответ 3
вы можете увидеть его, запустив
$ ss --unix |grep 'php'
Ответ 4
Вероятно, установлен более старый libpcre3 и удовлетворяет зависимость в пакете php7.0, но только новый пакет библиотеки предоставляет pcre_jit_stack_free.
Если это так, сделайте apt-get install libpcre3, и вам хорошо идти.
Ref.: https://github.com/oerdnj/deb.sury.org/issues/372
Я надеюсь, это поможет вам.
Ответ 5
Используйте это:
cat /etc/php/7.0/fpm/pool.d/www.conf | grep 'listen ='
Output example: listen =/run/php/php7.2-fpm.sock
Или для универсальных php-версий:
cat /etc/php/$(php -r "echo PHP_VERSION;" | grep --only-matching --perl-regexp "7.\d+")/fpm/pool.d/www.conf | grep 'listen ='