How to check PCNTL module exists

2019-08-03 02:14发布

I write simple requirements checking script. It checks all required PHP modules installed. I need to check if pcntl is installed. But this module is accessible only in cgi environment and invisible for web queries. extension_loaded('pcntl') and function_exists('pcntl_fork') both return false. How can I perform this check?

4条回答
霸刀☆藐视天下
2楼-- · 2019-08-03 02:20

Running php -i | grep pcntl will return the following if pcntl is enabled.

pcntl

pcntl support => enabled

查看更多
老娘就宠你
3楼-- · 2019-08-03 02:26

If it is installed, the code bellow returns true

var_dump (extension_loaded('pcntl'));
查看更多
叛逆
4楼-- · 2019-08-03 02:30

Create a file called cli_supports.php

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

Then from your feature detection scripts do.

  $cli_features = explode(",", shell_exec("/usr/local/bin/php ".escapeshellarg(_DIR_."/cli_supports.php")));
查看更多
Deceive 欺骗
5楼-- · 2019-08-03 02:30

If you're sure it's supported (or shared object exists) then check your php.ini and make sure it's loaded as an extension.

extension_loaded() should work (and what I prefer over function_exists()), and the only reason I can imagine it wouldn't is you not loading the shared object.

查看更多
登录 后发表回答