我编写简单的需求检查脚本。它会检查所有安装的必需PHP模块。我需要检查是否安装了pcntl。但是这个模块只能在cgi环境中访问,对于Web查询是不可见的。 extension_loaded('pcntl')和function_exists('pcntl_fork')都返回false。我该如何进行这项检查?
答案 0 :(得分:9)
如果已安装,则代码将返回true
var_dump (extension_loaded('pcntl'));
答案 1 :(得分:3)
创建一个名为cli_supports.php的文件
<?php
$supports = array();
if (function_exists("pcntl_fork")) $supports[] = "pcntl";
echo implode(",", $supports);
?>
然后从您的功能检测脚本中执行。
$cli_features = explode(",", shell_exec("/usr/local/bin/php ".escapeshellarg(_DIR_."/cli_supports.php")));
答案 2 :(得分:1)
如果启用pcntl,则运行php -i | grep pcntl
将返回以下内容。
pcntl
pcntl support => enabled
答案 3 :(得分:0)
如果您确定它受支持(或共享对象存在),请检查您的php.ini并确保它作为扩展名加载。
extension_loaded()
应该可以工作(以及我对function_exists()
的偏好),而我能想象的唯一原因就是你没有加载共享对象。