我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

php已知的服务器运行模式有好几种,大家最常用的就是使用fastcgi模式搭配nginx。在实际的编程工作中,会发现一些情况下,代码的运行走势和服务器运行模式有关。那么,就需要对php实际的运行模式进行判断。

苏南大叔:php如何判断服务器的运行模式?如何理解PHP_SAPI? - php服务器运行模式判断
php如何判断服务器的运行模式?如何理解PHP_SAPI?(图3-1)

苏南大叔的“程序如此灵动”博客,记录苏南的代码经验和感悟。本文测试环境:win10nginx@1.15.11php@8.2.10-nts

判断运行模式

判断php代码的服务器运行模式的方式,有两种。分别是:

  • 常量PHP_SAPI
  • 函数php_sapi_name()

测试代码:

var_dump(PHP_SAPI);
var_dump(php_sapi_name());
var_dump(PHP_VERSION);

苏南大叔:php如何判断服务器的运行模式?如何理解PHP_SAPI? - 运行模式检测
php如何判断服务器的运行模式?如何理解PHP_SAPI?(图3-2)

nginx+php输出:

string(8) "cgi-fcgi"
string(8) "cgi-fcgi"
string(6) "8.2.10"

命令行模式的服务器,输出:

string(10) "cli-server"
string(10) "cli-server"
string(6) "8.2.10"

有哪些运行模式

目前共有五种运行模式。分别是:

  • cli-server,也就是在命令行下面利用-S跑起来的服务。
  • fpm-fcgi,这个最常见的在linux下,搭配nginx的配置模式。
  • cgi-fcgi,一般在windows下,搭配iis或者nginx使用。
  • apache2handlerlibphp.so作为apache的一个模块使用。
  • phpdbg

题外话 server api

下面是线上服务器和本地测试服务器的server api对比:

苏南大叔:php如何判断服务器的运行模式?如何理解PHP_SAPI? - 对比项目
php如何判断服务器的运行模式?如何理解PHP_SAPI?(图3-3)

相关文章

结束语

本文主要介绍php的几种运行模式的检测方式,具体的每种模型下有何区别,待后续文章展开。
更多php经验文章,请点击苏南大叔的php相关博客文章:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   php