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

php-cgi和zend虚拟机的关系

php-cgi和zend虚拟机的关系

千巷猫影 2019-05-25 16:17:24
nginx等web服务器接收到.php请求的时候,会把该请求交给php-cgi,php-cgi会处理这个请求然后将结果返回给nginx。我们知道zend虚拟机会对php源码进行语法分析,语义分析等各种处理,然后执行php代码。那么php-cgi和zend虚拟机是什么关系呢?二者是同一个东西吗?如果不是,他们两个是怎么交互的?谢谢!
查看完整描述

2 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

首先你要明白,FastCGI,这是一种协议,而php-cgi是这个协议的一个实现。Nginx在收到请求后,会转发给php-cgi,让它来处理具体的请求。当请求完成后,会将结果返回给Nginx。而php-cgi在进程开始的时候,便会对ZE初始化,读取各种配置。当有请求来的时候,会解释执行对应的代码。
具体的过程是这样的,php-cgi进程启动时,会初始化ZE,然后Nginx在收到请求之后,转发给php-cgi进程,它在已经准备好的ZE下解释执行具体的代码,最后,代码执行完后,得到的结果返回给Nginx响应请求。
现在php-cgi大多都不用了,而用的多的是php-fpm(同样是FastCGI的实现)。
                            
查看完整回答
反对 回复 2019-05-25
?
眼眸繁星

TA贡献1873条经验 获得超9个赞

php-cgi调用zend虚拟机(ZE)来执行PHP代码。
php-cgi负责初始化ZE的执行环境,ZE负责解析和执行PHP代码,然后将结果返回给php-cgi.
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 466 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信