nginx + php mit unterschiedlicher Benutzer-ID ausführen

nginx + php mit unterschiedlicher Benutzer-ID ausführen

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. luaZu diesem Zweck könnte jedoch das nginx-Modul verwendet werden.

verwandte Informationen