为了账号安全,请及时绑定邮箱和手机立即绑定

php与web服务器的关系

标签:
PHP

1.什么是cgi程序,cgi与fastcgi的区别

CGI的中文名称是通用网关接口,是外部应用程序与web服务器之间的接口标准。CGI规范允许web服务器执行外部程序,并将它们的输出发送给web浏览器。
而fastcgi则是一个常驻型的cgi,它可以一直执行着,不需求每次请求都必须fork进程来处理,此外,它还支持分布式运算,接受来自其他服务器的请求。 
fastcgi不用fork新的进程处理请求,性能上比cgi程序要优。

2.PHP与web服务器通讯方式
1)php-fpm模式

php-fpm是一个php fastcgi管理器,可以视为php-cgi程序的守护进程。
该模式下,php-fpm进程负责接收web服务器请求,分发给它的子进程——php-cgi来处理数据。
这种模式一般搭配Nginx使用,其配置如下:

[plain] view plain copy

location ~ .*.(php|php5)?$  
{  
try_files $uri =404;  
fastcgi_pass  127.0.0.1:9000;  
fastcgi_index index.php;  
include /etc/nginx/fastcgi.conf;  
}  
php-fpm已经纳入php内核,在编译时通过--enable-fpm来启用改功能。

2)mod_php模式

   该模式下,一般是作为apache的一个模块启动的,apache在启动时,会读取php.ini文件并加载扩展模块,除非apache重启,php模块不会被重新加载。
在该模式下,apache使用prefork模式(非线程型,预派生web服务器),或者worker模式处理(混合多线程多进程,由于使用线程处理请求,
系统开销小于prefork模式,但是它既有多进程,因此也能保证prefork模式的稳定性)。
由于不需要额外的进程通讯和应用解析,该模式性能要比fastcgi好得多。

3)PHP推荐服务器配置方式

综合以上的对比,可以利用每个模式的特性,一般常用的是nginx处理静态文件,php请求则是通过转发,让apache处理。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消