Nginx和PHP-FPM 谁负责加载PHP文件?

Nginx + PHP-FPM是 Nginx先读取index.php 发给 PHP-FPM,然后 PHP-FPM 执行 index.php的require_once 加载其他PHP文件?

还是说Nginx只是告诉PHP-FPM入口文件index.php的路径?

阅读 3.9k
2 个回答

简而言之PHP-FPM负责处理PHP文件。

FPMfastcgi process manager的简称,它是一个fastcgi进程管理器。所以nginx接受到HTTP请求,然后把它转化为fastcgi请求发送给PHP-FPMPHP-FPM接收到请求后找到相应php文件,用php引擎执行它,再把结果返回给nginxnginx把它转化为HTTPResponse返回给浏览器。

sequenceDiagram
    participant 浏览器
    participant Nginx
    participant PHP FPM
    浏览器->>Nginx: HTTP Request
    Nginx->>PHP FPM: FastCGI Request
    PHP FPM->>Nginx: FastCGI Response
    Nginx->浏览器: HTTP Response

看nginx配置,fastcgi_param 传递了php脚本文件地址

location / {
  fastcgi_pass   localhost:9000;
  fastcgi_index  index.php;

  fastcgi_param  SCRIPT_FILENAME  /home/www/scripts/php$fastcgi_script_name;
  fastcgi_param  QUERY_STRING     $query_string;
  fastcgi_param  REQUEST_METHOD   $request_method;
  fastcgi_param  CONTENT_TYPE     $content_type;
  fastcgi_param  CONTENT_LENGTH   $content_length;
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题