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