如何检查PHP-FPM是否已在PHP中安装并处于活动状态

时间:2015-03-23 21:33:38

标签: lamp php

这些是我尝试但没有看到任何PHP-FPM值。

print_r(ini_get_all());
print_r(get_defined_constants());
echo php_sapi_name();
print_r(get_loaded_extensions());

在phpinfo中,我可以看到安装了php-fpm并且值处于活动状态。

2 个答案:

答案 0 :(得分:1)

根据@RenéHöhle的回答,这是我的方法:

ob_start();
phpinfo();
$phpinfo = ob_get_contents();
ob_get_clean();
preg_match('/<tr><td class="e">Server API <\/td><td class="v">(.+)<\/td><\/tr>/', $phpinfo, $phpapi);

if (trim($phpapi[1]) == "FPM/FastCGI" && version_compare(PHP_VERSION, '7.3.0') < 0) {
    echo "Warning, FPM is activated and PHP version is < 7.3.0. Function apache_request_headers is probably not available<br/>";
}

如果使用php模块而不是PHP-FPM,则$ phpapi的其他值可以是“ Apache 2.0 Handler”

答案 1 :(得分:0)

您可以使用execsystem并查看ps aux | grep php-fpm是否正在投放。问题是在某些共享主机系统上禁用了命令。

我认为通常你不能在你的phpinfo中看到你是否正在运行php-fpm,因为它是一个fastcgi实现。

另一个棘手的方法是从phpinfo文件中获取内容并检查值是否是洞察力。

ob_start();
phpinfo();
$variable = ob_get_contents();
ob_get_clean();

然后,您可以在$variable中获得phpinfo的内容,并且可以使用strpos查看该部分是否了解您的变量。