这些是我尝试但没有看到任何PHP-FPM值。
print_r(ini_get_all());
print_r(get_defined_constants());
echo php_sapi_name();
print_r(get_loaded_extensions());
在phpinfo中,我可以看到安装了php-fpm并且值处于活动状态。
答案 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)
您可以使用exec
或system
并查看ps aux | grep php-fpm
是否正在投放。问题是在某些共享主机系统上禁用了命令。
我认为通常你不能在你的phpinfo中看到你是否正在运行php-fpm,因为它是一个fastcgi实现。
另一个棘手的方法是从phpinfo文件中获取内容并检查值是否是洞察力。
ob_start();
phpinfo();
$variable = ob_get_contents();
ob_get_clean();
然后,您可以在$variable
中获得phpinfo的内容,并且可以使用strpos查看该部分是否了解您的变量。