关于apache以fastcgi模式运行php的错误理解纠正
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处理程序处理就可以了。
Fast-cgi模式的优缺点:
主要优点在于:
1)已经不是绑定于服务器的某个模块(虽然这样会比较稳定,但是对于高并发的处理性能局限于服务器)
2)fastcgi把动态逻辑的处理从服务器中分离出来, 大负荷的IO处理还是留给宿主服务器, 这样宿主服务器可以一心一意作IO,对于一个普通的动态网页来说, 逻辑处理可能只有一小部分, 大量的图片等静态内容占大部分。
缺点:
1)相比编译进服务器程序来说,并不是很稳定
2)如果使用具有调试功能的IDE,fast-cgi管理器会误判为php脚本运行超时
- 上一篇: PHP中防XSS攻击和防sql注入
- 下一篇: 关于静态方法不能调用类中的非静态属性的理解