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

问题描述 投票:0回答:2

这些是我尝试过的,但未看到任何PHP-FPM值。

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

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

lamp php
2个回答
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/>";
}

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


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进行检查,以了解该部分是否可以理解您的变量。]​​>

© www.soinside.com 2019 - 2024. All rights reserved.