49

I use shared hosting.

There is possible to find out whether PHP is running via fastCGI (or maybe CGI) or as Apache module mod_php?

Is it possibly to find out by myself, without asking the hoster?

4

2 回答 2

69

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

服务器 API:Apache 2.0 处理程序 + 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
于 2013-05-07T08:25:46.947 回答
3

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

或创建一个文件info.php并输入

<?php 
    phpinfo(); 
?>

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

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

安全考虑:确保删除输出的文件,phpinfo()特别是如果网站正在或将要在线托管。显示的信息是黑客的金矿。

于 2013-11-16T08:16:28.490 回答