
Im alten, gemeinsam genutzten Serversystem war mein Benutzername A. Jedes PHP-Skript auf meiner Site wurde mit meinem eigenen Benutzernamen ausgeführt:
$puser = posix_getpwuid(posix_geteuid())['name']; // = $puser = "A";
Jetzt betreibe ich meinen eigenen VPS, auf dem nginx läuft, und der Benutzername/die Gruppe ist nginx.
Ich habe jedoch das Konto eines Freundes mit dem Benutzernamen B erstellt und möchte, dass jedes von ihm erstellte PHP-Skript mit dem Benutzer B ausgeführt wird, nicht mit nginx. Grundsätzlich möchte ich, dass jedes PHP-Skript mit der UID desselben Benutzers ausgeführt wird, der es erstellt hat.
Ist das mit Nginx möglich?
Antwort1
Mit Bare-Nginx ist dies nicht allein auf Grundlage des Dateibesitzes möglich.
PHP-FPM ist die Skriptausführungs-Engine, die mit nginx verwendet wird.
In PHP-FPM gibt es PHP-Worker-Pools, die in verschiedenen Ports eingerichtet werden können. Jeder PHP-FPM-Worker kann einen Benutzer haben, der zum Ausführen von Skripten für diesen Pool verwendet wird.
Anschließend konfiguriert man auf der nginx-Seite Regeln, welches PHP-FPM-Backend für welche Anfrage verwendet wird. Die normale Konfiguration ist, dass jeder virtuelle Host auf nginx seinen eigenen PHP-FPM-Workerpool verwendet.
Mit bloßem nginx ist es nicht möglich, den Dateibesitz zu überprüfen, sodass der Backend-Speicherort mit dieser Information ausgewählt werden könnte. lua
Zu diesem Zweck könnte jedoch das nginx-Modul verwendet werden.