【问题标题】:When a php file is processed via Nginx & php-fpm, who owns the process ? NGINX or PHP-FPM?当通过 Nginx 和 php-fpm 处理 php 文件时,谁拥有该进程? NGINX 还是 PHP-FPM?
【发布时间】:2019-04-01 14:22:21
【问题描述】:

我的 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 文件吗?

【问题讨论】:

    标签: php apache web nginx server


    【解决方案1】:

    是的,你是对的。请参考这个网站:

    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 之间的优先级将是相同的。

    【讨论】:

    • 感谢您的快速回复。我已经更新了我的问题。你能检查一下吗?
    • 这个网站没有给出任何深入的内容。那么这里又是重点问题吗?上面写着“在 Apache 确定这是一个 PHP 文件后,它会将其交给 PHP 解释器”。你能告诉我“给予”是什么意思吗? nginx进程是否调用php进程并传递'文件路径'?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 2017-09-27
    • 2017-11-19
    • 2016-09-08
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多