Пишу простой скрипт проверки требований. Он проверяет все необходимые установленные модули PHP. Мне нужно проверить, установлен ли pcntl. Но этот модуль доступен только в среде cgi и невидим для веб-запросов. extension_loaded('pcntl') и function_exists('pcntl_fork') возвращают false. Как я могу выполнить эту проверку?
Как проверить наличие модуля PCNTL
Ответы (4)
Создайте файл с именем 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")));
person
Orangepill
schedule
11.06.2013
Если он установлен, приведенный ниже код возвращает true
var_dump (extension_loaded('pcntl'));
person
Jack M.
schedule
11.07.2014
Запуск php -i | grep pcntl
вернет следующее, если pcntl включен.
pcntl
pcntl support => enabled
person
TheRealJAG
schedule
30.10.2018
Если вы уверены, что он поддерживается (или существует общий объект), проверьте свой php.ini и убедитесь, что он загружен как расширение.
extension_loaded()
должен работать (и то, что я предпочитаю function_exists()
), и единственная причина, по которой я могу представить, что это не так, - это то, что вы не загружаете общий объект.
person
PinBot
schedule
25.02.2014
function_exists('pcntl_fork') == false
вы не можете использоватьpcntl_fork
- person Orangepill   schedule 11.06.2013