web-dev-qa-db-fra.com

Où se trouve php7.0-fpm.sock

J'ai un projet simple avec une structure de répertoire

Je suis en train de configurer nginx config pour mon site drupal, et pour le fastcgi_pass j'utilise 127.0.0.1:9000 mais je veux utiliser un socket Unix comme suggéré dans cette conf:

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

mais je ne trouve pas php/php7.0-fpm.sock;

J'ai le chemin suivant dans ma distribution centos

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

Vérifiez le php-fpm config où le socket sera créé avec:

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

Recherchez listen, par exemple:

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

php-fpm crée le fichier de socket après que vous avez lancé le processus. 

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

Vérifiez le répertoire si le fichier de socket a été créé:

$ cd /run/php && ls -la

17
BenRoob

Commencez par vérifier si php-fpm est en cours d’exécution sur votre système. Pour ce faire, vous pouvez utiliser pgrep par exemple:

# 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

Dans ce cas, il indique qu’il est opérationnel et qu’il utilise le fichier de configuration /etc/php-fpm.conf. Avant de vérifier le fichier de configuration et d'essayer de vérifier la directive listen =, vous pouvez rapidement consulter /proc/net/unix , par exemple:

# grep php /proc/net/unix

Ce qui peut retourner quelque chose comme:

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

Dans ce cas, il montre que le chemin de la socket php-fpm est situé dans /tmp/php-fpm.sock, celui-ci pouvant être vérifié en vérifiant la conf dans /etc/php-fpm.d/www.conf, dans le cas présent: listen= /tmp/php-fpm.sock

Si vous n'obtenez aucun résultat et que php-fpm est opérationnel, vérifiez la configuration qui utilise les valeurs par défaut en listant sur un socket TCP:

listen = 127.0.0.1:9000

Quelque chose que vous pourriez changer pour écouter sur une socket Unix comme votre conf suggéré:

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

Dans certaines distributions Linux, ceci est normalement utilisé:

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

Après avoir modifié votre configuration, n'oubliez pas de redémarrer les services systemctl restart php-fpm. Pour vérifier que le socket a bien été créé, vous pouvez faire:

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

Si socket existe si devrait imprimer quelque chose comme ceci:

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

vous pouvez le voir en courant 

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

Il est probable qu'une ancienne libpcre3 soit installée et satisfasse la dépendance du paquet php7.0, mais seul le paquet le plus récent de la bibliothèque fournit pcre_jit_stack_free.

Si tel est le cas, installez libpcre3 avec apt-get, et le tour est joué.

Réf .: https://github.com/oerdnj/deb.sury.org/issues/372

J'espère que ceci vous aide.

0