我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

SAPI:服务器应用程序编程端口。是 PHP 与其他应用程序交互的接口。执行 PHP 脚本的方式有很多种,比如通过 Web 服务器、直接在命令行中执行、或者嵌入到其他程序中。SAPI 提供了对外通信的接口。常见的 SAPI 有:cgi、fast-cgi、cli、 dll 等。

1. CGI

CGI 即通用网关接口( ,CGI),是一种程序。通俗地说,CGI 就像是连接网页和 Web 服务器中的执行程序的桥梁,它将 HTML 接收到的指令传递给服务器的执行程序,再将服务器执行程序的结果返回给 HTML 页面。CGI 具有出色的跨平台性能,几乎可以在任何操作系统上实现。

当CGI服务器遇到连接请求(用户请求)时,首先创建一个CGI子进程,并启动一个CGI进程,然后处理该请求,处理完后子进程结束,这就是fork-and-mode。因此,使用CGI方式的服务器,会有多少个连接请求,就有多少个CGI子进程。重复加载子进程是CGI性能不佳的主要原因,当用户请求数非常大时,会占用大量的内存、CPU时间等系统资源,导致性能不佳。

2、

fast-cgi是cgi的升级版本,像是一个长寿命的CGI,它可以一直执行,一旦激活,就不用每次都花时间fork。PHP是通过PHP-FPM()来管理的,PHP-FPM的全称是PHP 。

进程管理器(IIS ISAPI 或 IIS)在 Web 启动时加载。进程管理器会初始化自身,启动多个 CGI 解释器进程(参见多个 php-cgi)并等待来自 Web 的连接。

当客户端请求到达Web时,进程管理器选择并连接到一个CGI解释器。Web将CGI环境变量和标准输入发送给子进程php-cgi。

当子进程处理完毕后,它会通过同一个连接将标准输出和错误信息返回给 Web。当子进程关闭连接时,请求就处理完毕了。然后子进程等待并处理来自进程管理器(在 Web 中运行)的下一个连接。在 CGI 模式下,php-cgi 在此处退出。

在上面的场景中,您可以想象 CGI 总体上有多慢。对于每个 Web 请求,PHP 都必须重新解析 php.ini、重新加载所有扩展并重新初始化所有数据结构。使用 ,所有这些操作仅在进程启动时发生一次。作为额外的好处,持久数据库连接 ( ) 可以正常工作。

3.

PHP 是一个模块,系统启动后,服务器会预先生成多个进程副本,存放在内存中,一旦有请求出现,就立即使用这些空闲的子进程来处理,这样就不会有生成子进程带来的延迟。这些服务器副本处理完一个 HTTP 请求后,并不会立即退出,而是留在电脑里等待下一个请求,对客户端浏览器请求的响应更快,性能更高。

4. 命令行

cli是PHP的命令行运行方式,我们经常会用到,但是可能没有注意到(例如在Linux中我们经常使用“php -m”来查看PHP安装了哪些扩展,这就是PHP的命令行运行方式);

二维码
扫一扫在手机端查看

    Tags : php cgi
本文链接:https://by928.com/3510.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线