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