spawn-fcgi php-fpm,白话php工作方式:mod_php、mod_fastcgi、php-fpm、spawn-fcgi

以apache为例

1、mod_php,就是apache来亲自运行php,把php作为自己的一部份来运行。php导致的内存和cpu占用升高也会使得apache内存cpu占用升高。

2、mod_fastcgi,这是apache的一个模块,apache用它来运行php,这样php就占用apache的线程了,apache把这个任务交给了mod_fastcgi,而mod_fastcgi也不把php作为自己的一部份来运行,而是让php启动多个php-cgi.exe进程,mod_fastcgi来管理这些进程。

3、php-fpm,其实这个跟mod_fastcgi作用是一样的,只是mod_fastcgi属于apache,而php-fpmph属于php,其运行方式与mod_fastcgi类似,apache启动后用php-fpm启动多个php-cgi.exe进程,php-fpm来管理这些进程。

4、因为php-fpm管理效率较高,且可以对接其他服务器如:iis、apache、nginx、lighttpd等等,加之在php5.3.3以后php-fpm成为了php一部份,所以用php-fpm管理php是目前最流行的。

nginx运行php的方式:

1、nginx本身没有类似的mod_php或mod_fastcgi。所以nginx只能通过其他方式,早期的nginx需要用lighttpd的spawn-fcgi来运行控制php,spawn-fcgi类似于mod_fastcgi和php-fpm,早期的spawn-fcgi是lighttpd一部份,nginx使用spawn-fcgi必需同时安装lighttpd,后期的spawn-fcgi独立后可以直接使用。

2、上面提到php-fpm管理管理效率更高,又是php的一部份,所以nginx使用php-fpm运行php成为了最佳选择。

lighttpd运行php的方式:

1、上面我们提到nginx早期运行php需要lighttpd的spawn-fcgi,那么早期的lighttpd运行php也需要spawn-fcgi,但是后来spawn-fcgi被独立出来,那么后来的lighttpd运行php的方式就是mod_fastcgi。

2、lighttpd能用php-fpm管理php吗?答案是肯定的,但是需要用到自身的mod_fastcgi与php-fpm对接,也就是说lighttpd只有开启了mod_fastcgi,才可以使用php-fpm。

以上用不专业很的方式大体讲解了服务端运行php的方式。刚开始接触到mod_php、mod_fastcgi、php-fpm、spawn-fcgi也是一头雾水,有时候网上一篇文章被ctrl+c多了就讹传讹了。apache、nginx、lighttpd运行php各有各的最佳方式。如果您只是运行一个如本站这样的博客,apache+mod_php是最省心的选择。如果您运行一个动态+静态+图片站,比如论坛,lighttpd或前端nginx、后端lighttpd是最佳选择。如果您的服务器运行多个站,各种各样的站,nginx+iis是不错的选择。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值