Я пишу простой скрипт проверки требований. Он проверяет все необходимые модули PHP. Мне нужно проверить, установлен ли pcntl. Но этот модуль доступен только в среде cgi и невидим для веб-запросов. extension_loaded ('pcntl') и function_exists ('pcntl_fork') возвращают false. Как я могу выполнить эту проверку?
Создайте файл 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")));
Если он установлен, приведенный ниже код возвращает true
var_dump (extension_loaded('pcntl'));
Если вы уверены, что он поддерживается (или общий объект существует), проверьте ваш php.ini и убедитесь, что он загружен как расширение.
extension_loaded()
должен работать (и то, что я предпочитаю над function_exists()
), и единственная причина, по которой я могу себе представить, что это не вы не загружаете общий объект.