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-fpm
Dienst zum ersten Mal startete, der generierte /opt/remi/php56/root/var/run/php-fpm/www.sock
, änderte ich den www.sock
Benutzer und die Gruppe der generierten Datei in nginx:nginx
. Nach dem Neustart php56-php-fpm
stellte ich fest, dass dies www.sock
auf 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 .sock
Datei festzulegen?? Meine FPM-Konfigurationsdateien sehen so aus:
- /opt/remi/php56/root/etc/php-fpm.d/www.conf:https://pastebin.com/EasyHyEs
- /etc/opt/remi/php70/php-fpm.d/www.conf:https://pastebin.com/dhT8AEJK
- /etc/nginx/nginx.conf:https://pastebin.com/tMuAFnGM
- /etc/nginx/conf.d/default.conf:https://pastebin.com/UjkrcaYw
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:
- Was ist in meiner Konfiguration falsch, sodass www.sock
root:root
nach dem Neustart des entsprechenden FPM-Dienstes zurückgesetzt wird? - Lohnt es sich wirklich, auf Anschlüsse zu verzichten und stattdessen auf Buchsen umzusteigen?
- [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/php56
und/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.d
haben .include=/opt/remi/php56/root/etc/php-fpm.d/*.conf
php-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-fpm
musste ich listen.acl_users
die Variable in ../php-fpm.d/www.conf
den Benutzer meines Webservers ändern. Beispiel:
;comment: replace mywebserveruser with your own user
listen.acl_users = mywebserveruser