如何检查PCNTL模块是否存在

时间:2013-06-11 18:07:16

标签: php requirements pcntl

我编写简单的需求检查脚本。它会检查所有安装的必需PHP模块。我需要检查是否安装了pcntl。但是这个模块只能在cgi环境中访问,对于Web查询是不可见的。 extension_loaded('pcntl')和function_exists('pcntl_fork')都返回false。我该如何进行这项检查?

4 个答案:

答案 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()的偏好),而我能想象的唯一原因就是你没有加载共享对象。