J’utilise WordPress avec: Nginx + PHP-FPM + APC + Cache total W3 + PageSpeed.
Après 3 jours de recherche et de configuration, j’ai réussi à le faire fonctionner. J’ai configuré PHP-FPM pour qu’il fonctionne via 127.0.0.1:9000. Mais maintenant je veux configurer via Socket.
Le problème est que je ne trouve pas le chemin de socket sur mon serveur. Je viens de trouver /var/run/php-fpm/php-fpm.pid
, mais php-fpm.sock
n’était pas là.
En whereis php-fpm
exécution whereis php-fpm
la sortie est:
php-fpm: /usr/sbin/php-fpm /etc/php-fpm.d /etc/php-fpm.conf /usr/share/man/man8/php-fpm.8.gz
Mais il n’y a pas de php-fpm.sock
ici.
Comment puis-je trouver php-fpm.sock
?
Mes spécifications:
Je sais que ce sont de vieilles questions mais comme moi aussi j’ai le même problème tout à l’heure et que j’ai trouvé la réponse, j’ai pensé que je pourrais le partager. Le problème était dû à la configuration dans le répertoire pood.d /.
Ouvrir
/etc/php5/fpm/pool.d/www.conf
trouver
listen = 127.0.0.1:9000
changer à
listen = /var/run/php5-fpm.sock
Redémarrez ensuite le service nginx et php5-fpm et vérifiez si php5-fpm.sock est déjà créé.
Vérifiez le fichier de configuration, le chemin de configuration est /etc/php5/fpm/pool.d/www.conf
, vous trouverez le chemin par config et si vous voulez, vous pouvez le changer.
EDIT :
listen = /var/run/php5-fpm/php5-fpm.sock
bien, vous avez raison, vous devez remplacer listen = 127.0.0.1:9000
pour listen = /var/run/php5-fpm/php5-fpm.sock
, alors vous devez exécuter sudo service php5-fpm restart
, et assurez-vous il dit qu’il a redémarré correctement, sinon assurez-vous que /var/run/
a un dossier appelé php5-fpm
, ou faites-le écouter /var/run/php5-fpm.sock
parce que je ne pense pas que le dossier à l’intérieur /var/run
est créé automatiquement, je me souviens que je devais modifier le script de démarrage pour créer ce dossier, sinon même si mkdir /var/run/php5-fpm
après le redémarrage, ce dossier disparaîtra et le démarrage du service échouera.
J’ai rencontré ce même problème sur CentOS 7 ans plus tard
Affichage en espérant que cela pourrait aider les autres …
Pas:
D’abord , configurez les parameters php-fpm:
-> systemctl stop php-fpm.service
-> cd /etc/php-fpm.d
-> ls -hal
(devrait voir un fichier http://www.conf)
-> cp www.conf www.conf.backup
(retour du fichier juste au cas où)
-> vi www.conf
-> :/listen =
(pour arriver à la ligne que nous devons changer)
-> i
(pour entrer le mode d’insertion de texte du VI)
-> change d’ listen = 127.0.0.1:9000
POUR listen = /var/run/php-fpm/php-fpm.sock
-> Esc
alors :/listen.owner
(pour le trouver) puis i
(pour changer)
-> UNCOMMENT le listen.owner = nobody
et listen.group = nobody
lignes de listen.group = nobody
-> Hit Esc
puis tapez :/user =
alors i
-> change user = apache
TO user = nginx
-> AND change group = apache
TO group = nginx
-> Appuyez ensuite sur Esc
:wq
(pour enregistrer et quitter)
-> systemctl start php-fpm.service
(maintenant vous aurez un fichier php-fpm.sock)
Deuxièmement , vous configurez votre server {}
dans votre fichier /etc/nginx/nginx.conf
. Puis lancez: systemctl restart nginx.service
Enfin , créez un nouveau fichier .php dans votre répertoire / usr / share / nginx / html pour que votre serveur Nginx puisse servir de test via le navigateur Internet.
-> vi /usr/share/nginx/html/mytest.php
-> type o
->
(La page PHP imprimera la date et le jour dans le navigateur)
-> Hit Esc
-> tapez :wq
(pour sauvegarder et tout à fait l’éditeur de VI)
-> ouvrez un navigateur et allez à: http://yourDomainOrIPAddress/mytest.php
(vous devriez voir la date et le jour imprimés)
Résolu dans mon cas, je regarde
sudo tail -f /var/log/nginx/error.log
et l’erreur est php5-fpm.sock pas trouvé
Je regarde sudo ls -lah /var/run/
il n’y avait pas php5-fpm.sock
Je modifie le http://www.conf
sudo vim /etc/php5/fpm/pool.d/www.conf
changement
listen = 127.0.0.1:9000
pour
listen = /var/run/php5-fpm.sock
et redémarrer
Lorsque vous recherchez votre php-fpm.conf
example location: cat /usr/src/php/sapi/fpm/php-fpm.conf
vous verrez que vous devez configurer le gestionnaire de processus PHP FastCGI pour utiliser réellement les sockets Unix. Par défaut, la directive listen` est configurée pour écouter sur un socket TCP sur un port. S’il n’y a pas de socket Unix défini, vous ne trouverez pas de fichier de socket Unix.
; The address on which to accept FastCGI requests. ; Valid syntaxes are: ; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on ; a specific port; ; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on ; a specific port; ; 'port' - to listen on a TCP socket to all IPv4 addresses on a ; specific port; ; '[::]:port' - to listen on a TCP socket to all addresses ; (IPv6 and IPv4-mapped) on a specific port; ; '/path/to/unix/socket' - to listen on a unix socket. ; Note: This value is mandatory. listen = 127.0.0.1:9000
Je rencontre ce problème lorsque je lance LEMP pour la première fois sur centos7.
Je redémarre nginx pour tester la page phpinfo, mais obtenez ceci
http://xxx.xxx.xxx.xxx/info.php n’est pas inaccessible maintenant.
Ensuite, j’utilise tail -f /var/log/nginx/error.log
pour voir plus d’informations. Je trouve que le fichier php-fpm.sock n’existe pas. Ensuite, je redémarre le système, tout va bien.
Ici, il n’est peut-être pas nécessaire de redémarrer le système comme le poste de Fath, il suffit de recharger nginx et php-fpm.
redémarrer php-fpm
recharger nginx config