在旧的共享服务器系统中,我的用户名为A.我的站点中的每个PHP脚本都使用我自己的用户名运行:
$puser = posix_getpwuid(posix_geteuid())['name']; // = $puser = "A";
现在我运行我自己的运行nginx的VPS,用户名/组是nginx。
然而,我已经创build了一个用户名B的朋友的帐户,我希望他创build的每个PHP脚本与用户B执行,而不是nginx。 基本上我希望每个PHP脚本都与创build它的同一个用户的UID一起运行。
用nginx可以吗?
对于裸Nginx,你不能只基于文件的所有权。
PHP-FPM是与nginx一起使用的脚本执行引擎。
在PHP-FPM中,有PHP工作池,可以在不同的端口上设置。 每个PHP-FPM worker都可以有一个用于执行该池的脚本的用户。
然后,在nginx方面,我们configuration哪个PHP-FPM后端用于哪个请求的规则。 正常的configuration是nginx上的每个虚拟主机使用自己的PHP-FPM工作者池。
使用裸Nginx,不可能检查文件的所有权,以便后端的位置可以select与该信息。 虽然nginx lua模块可以用于这个目的。