5

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

4

4 回答 4

13

php -i | grep pcntl如果启用了 pcntl,运行将返回以下内容。

pcntl

pcntl support => enabled

于 2018-10-30T05:41:25.823 回答
12

如果已安装,则返回以下代码true

var_dump (extension_loaded('pcntl'));
于 2014-07-11T09:42:08.007 回答
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")));
于 2013-06-11T21:39:39.520 回答
0

如果您确定它受支持(或共享对象存在)然后检查您的 php.ini 并确保它作为扩展加载。

extension_loaded()应该可以工作(以及我更喜欢什么function_exists()),我能想象它不会工作的唯一原因是你没有加载共享对象。

于 2014-02-25T23:35:36.997 回答