了解PHP如何在服务器上运行(CGI或fastCGI或mod_php)

2022-08-30 10:32:26

我使用共享主机。

有可能找出PHP是通过fastCGI(或者CGI)还是作为Apache模块运行的?mod_php

有没有可能自己找出来,而不问女主人?


答案 1

这是 phpinfo() 输出顶部的服务器 API 行:

Server API: Apache 2.0 Handler + CGI/FastCGI

但是,请注意,它不一定会告诉您Apache的确切版本或确切的CGI处理程序。它只是描述了正在使用的SAPI。

您还可以调用 php_sapi_name() 函数(或PHP_SAPI常量,它提供相同的信息):

描述

string php_sapi_name ( void )

返回一个小写字符串,该字符串描述 PHP 正在使用的接口类型(服务器 API,SAPI)。例如,在CLI PHP中,此字符串将为“cli”,而对于Apache,它可能具有几个不同的值,具体取决于所使用的确切SAPI。

检查HSP的文档仍然是一个好主意,因为可能有几个PHP版本可用。


请记住,您需要从要检查的同一环境中运行phpinfo()(Web服务器不会告诉您有关命令行的信息,反之亦然):

C:\>php -i | findstr /C:"Server API"
Server API => Command Line Interface
$ php -i | grep 'Server API'
Server API => Command Line Interface

答案 2

您可以使用下面的链接: 如何确定php是作为php cgi还是apache模块运行?

或创建文件和类型info.php

<?php 
    phpinfo(); 
?>

现在使用您的域名运行文件。

在文件上找到服务器API,它显示PHP正在使用CGI或Apache的服务器上运行

安全注意事项:确保删除输出的文件,尤其是在网站正在或将要在线托管的情况下。显示的信息是黑客的金矿。phpinfo()


推荐