nginx + php se ejecuta con una identificación de usuario diferente

nginx + php se ejecuta con una identificación de usuario diferente

En el antiguo sistema de servidor compartido, mi nombre de usuario era A. Cada script PHP en mi sitio se ejecutaba con mi propio nombre de usuario:

$puser = posix_getpwuid(posix_geteuid())['name']; // = $puser = "A";

Ahora ejecuto mi propio VPS que ejecuta nginx y el nombre de usuario/grupo es nginx.

Sin embargo, creé la cuenta de un amigo con el nombre de usuario B y quiero que cada script PHP que cree se ejecute con el usuario B, no con nginx. Básicamente quiero que cada script PHP se ejecute con el UID del mismo usuario que lo creó.

¿Es eso posible con nginx?

Respuesta1

Con nginx básico, no puede hacerlo basándose únicamente en la propiedad del archivo.

PHP-FPM es el motor de ejecución de scripts que se utiliza con nginx.

En PHP-FPM, existen grupos de trabajadores PHP, que se pueden configurar en diferentes puertos. Cada trabajador PHP-FPM puede tener un usuario que se utiliza para ejecutar scripts para ese grupo.

Luego, en el lado de nginx, se configuran reglas sobre qué backend PHP-FPM se utiliza para cada solicitud. La configuración normal es que cada host virtual en nginx usa su propio grupo de trabajadores PHP-FPM.

Con nginx básico, no es posible verificar la propiedad del archivo para poder seleccionar la ubicación del backend con esa información. Sin embargo, el módulo nginx luapodría usarse para este propósito.

información relacionada