首页 > 代码库 > 关于cgi,fastcgi,php-fpm的一些个人理解
关于cgi,fastcgi,php-fpm的一些个人理解
- 个人将cgi理解为翻译工具,举个例子,webserver如apache是中国人,收到的请求访问php文件是法国人,两者语言不通,无法沟通。这时cgi作为一个接口工具,为两者做翻译的服务。cgi程序会解析php的内容,以双方约定的形式返回web服务器。
- cgi全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。当web server(nginx)收到/index.php这个请求后,会启动对应的CGI程序,这里就是PHP的解析器。接下来PHP解析器会解析php.ini文件,初始化执行环境(消耗大量时间,对每个请求都要执行,fastcgi就是对这个过程的优化),然后处理请求,再以CGI规定的格式返回处理后的结果,退出进程。web server再把结果返回给浏览器。
- Fastcgi是用来提高CGI程序性能的。WEB服务器与处理程序之间通信的一种协议,是CGI的改进方案。用来沟通程序(如PHP, Python, Java)和Web服务器(Apache2, Nginx), 理论上任何语言编写的程序都可以通过Fastcgi来提供Web服务。 Fastcgi的特点是会启动一个master,解析php.ini文件,初始化环境。在一个进程中依次完成多个请求,以达到提高效率的目的,大多数Fastcgi实现都会维护一个进程池。
- PHP-fpm: 是一个实现了Fastcgi的程序,被PHP官方收录了(php5.3)。fastcgi是一个协议,php-fpm实现了这个协议
关于cgi,fastcgi,php-fpm的一些个人理解
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。