PHP有5种运行模式,常见的有4种:
1. cgi 协议模式
cgi模式:通用网关接口(Common Gateway Interface),它允许web服务器通过特定的协议与应用程序通信
调用原理大概为:用户请求 -> Web服务器接收请求 -> fork子进程调用程序/执行程序 -> 程序返回内容/程序调用结束 -> web服务器接收内容 -> 返回给用户
由于每次用户请求,都得fork创建进程调用一次程序,然后销毁进程,所以性能较低
2. fast-cgi 协议模式
fast-cgi是cgi模式的升级版,它像是一个常驻型的cgi,只要开启后,就可一直处理请求,不再需要结束进程
调用原理大概为:(web服务器fast-cgi进程管理器初始化,预先fork n个进程) 用户请求 -> web服务器接收请求 -> 交给fast-cgi进程管理器 -> fast-cgi进程管理区接收,给其中一个空闲fast-cgi进程处理 -> 处理完成,fast-cgi进程变为空闲状态等待下次请求 -> web服务器接收内容 -> 返回给用户
fast-cgi和cgi都是一种协议,开启的进程是单独实现该协议的进程
3. 模块模式
apache+php运行时,默认使用的是模块模式,它把php作为apache的模块随apache启动而启动,接收到用户请求时则直接通过调用mod_php模块进行处理
4. cli 模式
cli是php的命令行运行模式
- PHP运行指定文件
php script.php php -f script.php
使用或不使用 -f 参数都能够运行脚本的script.php,同时执行的脚本文件并非必须以.php为扩展名,它们可以有任意的文件名和扩展名
- 在命令行直接运行 PHP 代码
php -r "echo 'Hello World!';"