Ich betreibe Wordpress mit: Nginx + PHP-FPM + APC + W3 Total Cache + PageSpeed.
Nach 3 Tagen Recherche und Konfiguration ist es mir gelungen, es zum Laufen zu bringen. Nun möchte ich aber per Socket konfigurieren.
Das Problem ist, dass ich den Socket-Pfad in meinem Server nicht finden kann. Ich habe gerade /var/run/php-fpm/php-fpm.pid
gefunden, aber php-fpm.sock
war nicht dabei.
whereis php-fpm
läuft die Ausgabe ist:
php-fpm: /usr/sbin/php-fpm /etc/php-fpm.d /etc/php-fpm.conf /usr/share/man/man8/php-fpm.8.gz
Es gibt aber keinen php-fpm.sock
dort.
Wie finde ich php-fpm.sock
?
Meine Angaben:
Ich weiß, das sind alte Fragen, aber da ich auch jetzt das gleiche Problem habe und die Antwort herausgefunden habe, dachte ich, ich könnte es teilen. Das Problem war auf die Konfiguration im Verzeichnis pood.d/zurückzuführen.
Öffnen
/etc/php5/fpm/pool.d/www.conf
finden
listen = 127.0.0.1:9000
ändern
listen = /var/run/php5-fpm.sock
Starten Sie anschließend den Dienst nginx und php5-fpm erneut und prüfen Sie, ob php5-fpm.sock bereits erstellt wurde.
Überprüfen Sie die Konfigurationsdatei. Der Konfigurationspfad lautet /etc/php5/fpm/pool.d/www.conf
. Dort finden Sie den Pfad über die Konfigurationsdatei. Wenn Sie möchten, können Sie ihn ändern.
EDIT:
Wenn Sie richtig sind, müssen Sie listen = 127.0.0.1:9000
durch listen = /var/run/php5-fpm/php5-fpm.sock
ersetzen. Dann müssen Sie Sudo service php5-fpm restart
ausführen und sicherstellen, dass der Neustart korrekt ist. Wenn dies nicht der Fall ist, stellen Sie sicher, dass /var/run/
über einen Ordner namens php5-fpm
verfügt oder erstellt wird Hören Sie sich /var/run/php5-fpm.sock
an, ich glaube nicht, dass der Ordner in /var/run
automatisch erstellt wird. Ich erinnere mich, dass ich das Startskript bearbeiten musste, um diesen Ordner zu erstellen. Andernfalls verschwindet der Ordner, wenn Sie mkdir /var/run/php5-fpm
nach dem Neustart des Ordners nicht starten.
Bei CentOS stand ich sieben Jahre später vor demselben Problem
Posting in der Hoffnung, dass es anderen helfen kann ...
Schritte:
FIRST, konfiguriere die php-fpm-einstellungen:
-> systemctl stop php-fpm.service
-> cd /etc/php-fpm.d
-> ls -hal
(sollte eine www.conf-Datei sehen)
-> cp www.conf www.conf.backup
(Sicherungskopie nur für den Fall)
-> vi www.conf
-> :/listen =
(um zur Zeile zu gelangen, müssen wir ändern)
-> i
(um den Texteinfügungsmodus des VIs zu aktivieren)
-> Wechsel von listen = 127.0.0.1:9000
zu listen = /var/run/php-fpm/php-fpm.sock
-> Esc
dann :/listen.owner
(um es zu finden) dann i
(um sich zu ändern)
-> KOMMENTIEREN Sie die Zeilen listen.owner = nobody
UND listen.group = nobody
-> Drücken Sie Esc
und geben Sie :/user =
und i
ein.
-> user = Apache
TO user = nginx
ändern
-> AND group = Apache
TO group = nginx
ändern
-> Drücken Sie Esc
und dann :wq
(zum Speichern und Beenden)
-> systemctl start php-fpm.service
(jetzt haben Sie eine php-fpm.sock Datei)
ZWEITENS konfigurieren Sie Ihren server {}
-Block in Ihrer /etc/nginx/nginx.conf
-Datei. Dann führe aus: systemctl restart nginx.service
SCHLIESSLICH, erstellen Sie eine neue .php-Datei in Ihrem Verzeichnis/usr/share/nginx/html für Ihren Nginx-Server, um sie als Test über den Internetbrowser zu starten.
-> vi /usr/share/nginx/html/mytest.php
-> Typ o
-> <?php echo date("Y/m/d-l"); ?>
(PHP-Seite gibt Datum und Tag im Browser aus)
-> Treffer Esc
-> :wq
eingeben (speichern und ganz VI-Editor)
-> Öffne einen Browser und gehe zu: http://yourDomainOrIPAddress/mytest.php
(Datum und Tag sollten gedruckt werden)
Gelöst in meinem Fall schaue ich an
Sudo tail -f /var/log/nginx/error.log
und Fehler ist php5-fpm.sock nicht gefunden
Ich schaue auf Sudo ls -lah /var/run/
es gab keinen php5-fpm.sock
Ich bearbeite die www.conf
Sudo vim /etc/php5/fpm/pool.d/www.conf
veränderung
listen = 127.0.0.1:9000
zum
listen = /var/run/php5-fpm.sock
und neu starten
Wenn Sie Ihren php-fpm.conf
nachschlagen
example location:
cat /usr/src/php/sapi/fpm/php-fpm.conf
sie werden sehen, dass Sie den PHP FastCGI Process Manager für die Verwendung von Unix-Sockets konfigurieren müssen. Standardmäßig ist die Anweisung listen
so eingerichtet, dass sie einen TCP - Socket an einem Port abhört. Wenn kein Unix-Socket definiert ist, finden Sie keine Unix-Socket-Datei.
; 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
Ich stoße auf dieses Problem, wenn ich LEMP zum ersten Mal auf centos7 ausführe. Siehe hierzu post.
Ich starte nginx neu, um die phpinfo-Seite zu testen, aber bekomme dies
http://xxx.xxx.xxx.xxx/info.php ist jetzt nicht unerreichbar.
Dann benutze ich tail -f /var/log/nginx/error.log
um mehr Infos zu sehen. Ich finde die php-fpm.sock Datei nicht vorhanden. Dann starte ich das System neu, alles ist in Ordnung.
Hier muss das System möglicherweise nicht neu gestartet werden, da Faths post , sondern nur nginx und php-fpm neu geladen werden.