PHP执行PHP脚本代码一般会经过如下4个步骤:

1、Scanning(Lexing) —— 将PHP代码转换为语言片段(Tokens)

2、Parsing —— 将Tokens转换成简单而有意义的表达式

3、Compilation —— 将表达式编译成opocdes

4、Execution —— 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能

(opcode类似一种二进制格式,php先将源代码编译成opcode,然后再执行)


Apache+php的模式:

1、CGI:

在服务器响应用户的php页面请求时,apache将源代码递给zend Engine(php的解释器),zend Engine将执行结果以html的格式返回给apache,apache与zend Engine之间使用cgi协议,此时一个用户请求服务端需使用两个进程

2、module

在Apache中加入php_mod模块,apache同时处理静态内容和动态内容,一个请求只需一个进程

3、FAST CGI

另外添加一台php服务器,该服务器预先创建若干个空进程,提高响应速度

wKiom1cjdmOjsvPkAAALSaN0ZY0266.png

php加速器:

服务器默认将opcode存放于相应请求的进程内存空间中,这样每个请求都要编译一次php,php加速器则是将opcode缓存于php的共享缓存中,使同一段代码只需编译一次,后续可直接执行,提高性能。


嵌入式web开发语言:仅将php部分内容交给zend engine执行

 

index.php
 
<html>
    <head></head>
 
<?php
 
php?>
 
</html>