PHP之单线程和多进程的理解(CGI,FastCGI,php-cgi,php-fpm)

先说结论:PHP多进程

为什么说PHP多进程,PHP处理多并发主要是依赖服务器或PHP-FPM的多进程及它们进程的复用

 

CGI :通用网关接口

  是用来负责web服务器和动态语言通信的协议,当发现请求是静态文件时,直接去文件中查找。当发现请求是 php结尾的时,将请求转发给php-cgi进行处理,当请求处理完成后,将结果返回给 web服务器。

     缺点

          (1)当每次接收到请求后,都会开一个php-cgi 进程去解析这个web请求 , 并发量稍微一多,就会消耗大量资源【无法处理高并发】

          (2)接口安全性较差

php-cgi:PHP的解析器

     是对CGI的应用

    php-cgi会处理和PHP相关的请求。php-cgi会先解析php.ini文件,然后初始化环境,处理请求,再以CGI规定的格式返回处理后的结果,退出进程

 

FastCGI:(快速通用网关接口)

      顾名思义,FastCGI是CGI的升级版, 是用来提高CGI程序性能。它不会对每个Web服务器发送来的请求都开一个进程,而是会提前生成好一些进程【可以是固定的,也可以是动态】

php-fpm:(php-cgi的管理器)

    php-fpm对php-cgi不是完全管理,而是请求转发

    PHP-fpm是对FastCGI的应用

     FastCGI会先启动一个master进程,解析配置文件,初始化执行环境,然后再启动多个worker进程。当请求来时,master会传递给一个worker,然后立即可以接受下一个请求。当worker不够时,master可以现根据配置预先启动几个worker等着;当进程太多时,停掉一些worker

      

每当修改php.ini文件后,重启php-fpm就可以实现 php-cgi的平滑重载

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值