php-cgi和zend虚拟机的关系

查看:91
本文介绍了php-cgi和zend虚拟机的关系的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

nginx等web服务器接收到 .php请求的时候,会把该请求交给php-cgi,php-cgi会处理这个请求然后将结果返回给nginx。

我们知道zend虚拟机会对php源码进行语法分析,语义分析等各种处理,然后执行php代码。

那么php-cgi和zend虚拟机是什么关系呢?二者是同一个东西吗?如果不是,他们两个是怎么交互的?

谢谢!

解决方案

首先你要明白,FastCGI,这是一种协议,而 php-cgi 是这个协议的一个实现。Nginx 在收到请求后,会转发给 php-cgi,让它来处理具体的请求。当请求完成后,会将结果返回给 Nginx。而 php-cgi 在进程开始的时候,便会对 ZE 初始化,读取各种配置。当有请求来的时候,会解释执行对应的代码。

具体的过程是这样的,php-cgi 进程启动时,会初始化 ZE,然后 Nginx 在收到请求之后,转发给 php-cgi 进程,它在已经准备好的 ZE 下解释执行具体的代码,最后,代码执行完后,得到的结果返回给 Nginx 响应请求。

现在 php-cgi 大多都不用了,而用的多的是 php-fpm(同样是 FastCGI 的实现)。

这篇关于php-cgi和zend虚拟机的关系的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆