通过Nginx和php-fpm处理php文件时,谁拥有该进程? NGINX还是PHP-FPM?

时间:2018-10-28 13:46:24

标签: php apache web nginx server

我的PHP-FPM以用户 www-data 运行,而Nginx服务器以用户 nginx 运行。我正在尝试浏览用php编写的文件,例如example.com/index.php。

那么,当php-fpm在拥有进程Nginx或php-fpm的服务器中执行index.php时?

我读过Nginx将php文件传递到fast-cgi服务器的地方,fast-cgi服务器运行php文件并生成HTML内容,然后发送回NGINX,NGINX再次发送回浏览器。

所以根据我的说法,因为Nginx是fast-cgi进程的父进程,所以Nginx应该是该进程的所有者。如果我错了,请纠正我。

Update-1 (如果我的假设是真的,还会有其他问题)

1-为什么人们更关心应该授予NGINX用户而不是PHP-FPM用户什么权限?这是我的相关问题https://unix.stackexchange.com/questions/477389/is-it-okay-to-give-permission-of-rwx-to-my-php-user-outside-of-web-root

之一

2- Nginx确定这是一个PHP文件后,将其提供给PHP解释器。 “赠予”是什么意思? Nginx进程会调用php进程并传递“文件路径”吗?还是Nginx本身访问该php文件的内容,并将每个代码逐行发送到PHP-FPM? Nginx以哪种格式从php解释器接收输出?它会生成一个临时的html文件吗?

1 个答案:

答案 0 :(得分:0)

是的,你是对的afaik。请访问此网站:

https://stillat.com/blog/2014/04/02/how-does-php-work-with-the-web-server-and-browser

其中包含这张简单的图片,以演示事物在Web服务器(Apache / NginX等)与解释器(PHP)之间的工作方式

您可能会问,我要求提供PHP-FPM!嗯,在这种情况下没关系。

PH-FPM代表:PHP Fast Process Manager是用于PHP脚本和应用程序的Fast-CGI处理程序。

因此,Web服务器和php之间的优先级相同。