Fedora - Nginx PHP-FPM - ständiger Wechsel des FPM-Sockets zu Root

Fedora - Nginx PHP-FPM - ständiger Wechsel des FPM-Sockets zu Root

Ich entschuldige mich im Voraus, wenn meine Terminologie nicht den Anforderungen entspricht.

Ich habe gerade meine Arbeits-Entwicklungsmaschine erfolgreich auf Fedora Workstation mit Nginx und mehreren PHP-Versionen eingerichtet (mit Remi Collets Software Collection). Ich habe PHP-5.6.30 auf Port 9056 und PHP-7.0.19 auf Port 9070 laufen. Das funktioniert perfekt.

Heute Morgen habe ich beschlossen, beide PHP-Instanzen mit FPM-Sockets auszuführen, was zunächst funktionierte, bis ich den PHP-FPM-Dienst neu startete (was zu einem502 Bad Gatewayim Browser und(13) Erlaubnis verweigertFehler im nginx error.log).

Also, ich verwende PHP5.6 als Beispiel ... als ich den php56-php-fpmDienst zum ersten Mal startete, der generierte /opt/remi/php56/root/var/run/php-fpm/www.sock, änderte ich den www.sockBenutzer und die Gruppe der generierten Datei in nginx:nginx. Nach dem Neustart php56-php-fpmstellte ich fest, dass dies www.sockauf zurückgesetzt wurde root:root. Zugegeben, ich werde FPM nicht ständig neu starten, aber es muss doch eine Möglichkeit geben, einige Standardwerte für die .sockDatei festzulegen?? Meine FPM-Konfigurationsdateien sehen so aus:

Mir ist klar, dass es mühsam klingt, das richtig zum Laufen zu bringen, wenn man bedenkt, dass ich das nur für die lokale Entwicklung mache,Unddass bei mir alles mit den Ports 9056 und 9070 richtig funktioniert hat. Aber ich habe gelesen, dass die Verwendung von Sockets gegenüber TCP einige Geschwindigkeitsvorteile bietet, und alles, was meine lokale Entwicklungsumgebung beschleunigen würde, ist den Aufwand wert.

Also meine Fragen:

  1. Was ist in meiner Konfiguration falsch, sodass www.sock root:rootnach dem Neustart des entsprechenden FPM-Dienstes zurückgesetzt wird?
  2. Lohnt es sich wirklich, auf Anschlüsse zu verzichten und stattdessen auf Buchsen umzusteigen?
  3. [etwas abseits vom Thema]: Wenn ich die Softwaresammlung von Remi Collet verwende, sehe ich, dass die beiden PHP-Pakete an unterschiedlichen Orten installiert werden: /opt/remi/php56und /etc/opt/remi/php70... sollte ich aus Gründen der Konsistenz in Erwägung ziehen, eines davon an einen gemeinsameren Ort zu verschieben?

Danke

Antwort1

Ein paar Dinge, die Sie überprüfen sollten …

1) Unter CentOS schließt PHP die Konfigurationsdateien standardmäßig nicht in das Verzeichnis ein . Stellen Sie sicher, dass Sie sie in der Datei php-fpm.dhaben .include=/opt/remi/php56/root/etc/php-fpm.d/*.confphp-fpm.conf

2) Sie müssen sicherstellen, dass Sie den Socket-Besitz in der PHP-FPM-Poolkonfiguration festlegen, zum Beispiel:

[www]
listen       = /opt/remi/php56/root/var/run/php-fpm/$pool.sock
listen.owner = someuser
listen.group = somegroup
listen.mode  = 0600

Antwort2

In meinem eigenen Fall bei Remi php80-php-fpmmusste ich listen.acl_usersdie Variable in ../php-fpm.d/www.confden Benutzer meines Webservers ändern. Beispiel:

;comment: replace mywebserveruser with your own user 
listen.acl_users = mywebserveruser

verwandte Informationen