php如何判断服务器的运行模式?如何理解PHP_SAPI?
发布于 作者:苏南大叔 来源:程序如此灵动~
php已知的服务器运行模式有好几种,大家最常用的就是使用fastcgi模式搭配nginx。在实际的编程工作中,会发现一些情况下,代码的运行走势和服务器运行模式有关。那么,就需要对php实际的运行模式进行判断。

苏南大叔的“程序如此灵动”博客,记录苏南的代码经验和感悟。本文测试环境:win10,nginx@1.15.11,php@8.2.10-nts。
判断运行模式
判断php代码的服务器运行模式的方式,有两种。分别是:
- 常量
PHP_SAPI。 - 函数
php_sapi_name()。
测试代码:
var_dump(PHP_SAPI);
var_dump(php_sapi_name());
var_dump(PHP_VERSION);
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使用。apache2handler,libphp.so作为apache的一个模块使用。phpdbg。
题外话 server api
下面是线上服务器和本地测试服务器的server api对比:

相关文章
- https://newsn.net/say/mac-php-apache-fpm.html
- https://newsn.net/say/mac-php-apache-mod.html
- https://newsn.net/say/php-www.html
- https://newsn.net/say/php-www-ini.html
- https://newsn.net/say/www-issue-so.html
- https://www.php.net/php_sapi_name
结束语
本文主要介绍php的几种运行模式的检测方式,具体的每种模型下有何区别,待后续文章展开。
更多php经验文章,请点击苏南大叔的php相关博客文章: