1、上篇文章写到,php要以fast-cgi方式在apache下运行,需要借助第三方的模块fcgi.so,默认的情况下是编译到apache中,如同apache以ISAPI模式将php编译成自己的模块,使自己拥有php脚本解析功能。
2、原先php在5.3版本之前是以CGI模式(每次请求都调用和关闭php解析程序)或者是编译在apache下的ISAPI模式运行,所以需要这个第三方插件来帮助, fcgi.so这个功能模块是一个fastcgi协议的客户端,有了这个模块,如同浏览器跟服务器打交道一样,需要有http协议的客户端(浏览器将请求以http协议格式封装,apache或者nginx有了fcgi模块就能够将数据以fastcgi方式封装给以fastcgi模式运行的php-fpm),就可以访问以fastcgi运行的php服务器端php-fpm(这个在php5.3之后被整合进php源代码包中,不再是第三方补丁)了。
3、因为本身nginx就实现了fastcgi协议,有一个fastcgi的模块,所以在配置nginx的时候,不需要再装什么fcgi.so这样的扩展模块,直接过滤请求给以fast-cgi模式运行php处理程序处理就可以了。

本文纠正了关于Apache以FastCGI模式运行PHP的错误理解。以前,PHP通过CGI或ISAPI模式运行,而FastCGI通过fcgi.so模块作为客户端实现与php-fpm(在PHP 5.3后整合)的通信。Nginx自身支持FastCGI,配置时无需额外模块,可直接转发请求给PHP处理。FastCGI模式的优势在于分离动态逻辑处理,减轻服务器负担,适合高并发,但可能存在稳定性及调试问题。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



