Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检查PCNTL模块是否存在_Php_Requirements_Pcntl - Fatal编程技术网

Php 如何检查PCNTL模块是否存在

Php 如何检查PCNTL模块是否存在,php,requirements,pcntl,Php,Requirements,Pcntl,我编写了简单的需求检查脚本。它检查安装的所有必需的PHP模块。我需要检查是否安装了pcntl。但该模块只能在cgi环境中访问,对于web查询是不可见的。加载的扩展_('pcntl')和函数_exists('pcntl_fork')都返回false。如何执行此检查?创建一个名为cli_supports.php的文件 <?php $supports = array(); if (function_exists("pcntl_fork")) $supports[] = "pcntl"

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

创建一个名为cli_supports.php的文件

  <?php
  $supports = array();
  if (function_exists("pcntl_fork")) $supports[] = "pcntl";
  echo implode(",", $supports);
  ?>

如果您确定它受支持(或共享对象存在),那么请检查php.ini并确保它作为扩展加载


extension\u loaded()
应该可以工作(我更喜欢的是
function\u exists()
),我能想象不工作的唯一原因是您没有加载共享对象。

如果安装了它,下面的代码返回
true

var_dump (extension_loaded('pcntl'));

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

pcntl

pcntl-support=>enabled

如果
function\u存在('pcntl\u-fork')==false
您不能使用
pcntl\u-fork
问题是,如果pcntl存在,它仍然不可见,直到您在没有服务器的情况下运行脚本,即/usr/local/bin/php-script.php。如果您运行脚本这样的方法,它将工作得很好。但是,如果您想从web之类的位置检查它,它将被隐藏。您必须创建一个单独的功能捕获脚本,以从CLI获取功能。您应该能够从shell_exec运行该程序并解析返回的数据。
pcntl