5

PHP 运行方式详解_CRMEB中邦科技的技术博客_51CTO博客

 2 years ago
source link: https://blog.51cto.com/u_15723831/5690363
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

PHP 运行方式详解

精选 原创

CRMEB众邦科技 2022-09-19 17:32:42 ©著作权

文章标签 php 服务器 命令行 协议模式 文章分类 PHP 前端开发 阅读数240

PHP 运行方式详解_php

1、​ ​CGI 协议模式​​ CGI 的含义是通用网关协议(Common Gateway Interface),它允许 web 服务器通过特定的协议与应用程序通信,调用原理如下:用户请求  -> Web 服务器接收请求  -> fork 子进程 调用程序 / 执行程序  -> 程序返回内容 / 程序调用结束  -> Web 服务器接收内容 -> 返回给用户由于每次用户请求都得 fork 创建子进程调用应用程序,请求结束后销毁进程,所以性能比较低。

2、​ ​Fast-CGI 协议模式​​ Fast-CGI 是 CGI 模式的升级版,它像是一个常驻内存的 CGI,只要开启后,就可以一直处理请求,不再需要结束进程。调用过程如下:Web 服务器 Fast-CGI 进程管理器初始化 -> 预先 fork 多个进程用户请求 -> Web 服务器接收请求 ->Web 服务器将请求交给 Fast-CGI 进程管理器 ->Fast-CGI 进程管理器接收,给其中一个空闲的的 Fast-CGI 进程处理 -> 处理完成 Fast-CGI 进程变为空闲状态,等待下次请求 ->Web 服务器接收内容 -> 返回给用户 Fast-CGI 和 CGI 都是一种协议,开启的进程是单独实现该协议的进程

3、模块模式 Apache + php 运行时,默认使用的是模块模式,它把 php 作为 Apache 的模块随 Apache 启动而启动。接收到用请求时,直接通过调用 Apache 的 mod_php 模块进行处理。

4、php-cli 模式 php-cli 模式属于命令行模式,该模式不需要借助其他程序,直接在命令行就可以执行 php 代码,命令类似下面这样:php xxx.php

注意事项:

1、在命令行模式下,没有超时时间,也无法通过 set_time_limit

2、设置超时时间在命令行模式下,默认关闭 buffer 缓冲。在普通的 Web 模式中,echo var_dump 等输出语句 / 函数,默认情况下是先进入 php 缓冲区,等缓冲区到达一定数量,才开始传输给 Web 服务器。可以通过 ob 等系列函数操作缓存区,例如 ob_get_contents

3、在 php-cli 模式下,默认是关闭 buffer,直接输出。例如:echo var_dump phpinfo 等输出直接输出到控制台

完整附件:​ ​http://github.crmeb.net/u/defu​

  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK