CGI、FastCGI、PHP-CGI、PHP-FPM

1:CGI与FastCGI

  • CGI与FastCGI都是一种通讯协议,是web Sever(Apache/nginx/iis)与其他程序(此程序通常叫做CGI程序,如PHP脚本解析器)之间通讯的桥梁,CGI是为了保证Web Server传递过来的数据是标准格式的
  • FastCGI是CGI的改良进化版,FastCGI相比CGI更安全、性能更好,所以现在都是使用FastCGI协议进行通讯
  • FastCGI兼容CGI

2:PHP-CGI与PHP-FPM

  • PHP-CGI其实就是PHP脚本解析器,他是CGI协议的实现
  • PHP-FPM就是FastCGI协议的实现
  • PHP-CGI和PHP-FPM都是程序

3:PHP-FPM详解

  • fastcgi和cgi有什么区别

cgi在一个请求过来后,去读取php.ini里的基础配置信息,初始化执行环境,每次都要不停的去创建一个进程,读取配置,初始化环境,返回数据,退出进程,久而久之,启动进程的工作变的乏味无趣特别累;fastcgi可以让cgi一次启动一个主进程(master),让他只读取一次配置,然后在启动多个工作进程(worker),当一个请求来的时候,通过master传递给worker这样就可以避免重复劳动了,当worker不够的时候,master会通过配置里的信息,动态启动worker,等空闲的时候可以收回worker

  • php-fpm 到底是个什么东西

就是来管理启动一个master进程和多个worker进程的程序;PHP-FPM 会创建一个主进程,控制何时以及如何HTTP请求转发给一个或多个子进程处理。PHP-FPM主进程还控制着什么时候创建(处理Web应用更多的流量)和销毁(子进程运行时间太久或不再需要了)PHP子进程。PHP-FPM进程池中的每个进程存在的时间都比单个HTTP请求长,可以处理10、50、100、500或更多的HTTP请求

参考:
参考:
参考:

标签: php

添加新评论