Проверка динамически загружаемых расширений PHP из командной строки

Я проверил руководство PHP, чтобы понять различные типы расширений PHP (модули PHP). Существуют модули Zend (в основном для гуру PHP), встроенные модули и внешние модули.

Есть ли способ указать из командной строки, загружен ли модуль PHP динамически или встроен ли он в двоичный файл PHP?

Я имею в виду: с php -m я получаю все загруженные модули, но мне хотелось бы знать, какие из них встроены и какие из них внешние.

Ответы

Ответ 1

Я не уверен, что это возможно из обычного PHP-кода, могут быть некоторые внутренние вызовы Zend, которые вы можете сделать из собственного расширения. Однако может быть навязчивый способ угадывания, проверяя, имеет ли загрузочное расширение доступную доступную динамическую библиотеку...

$extdir=ini_get('extension_dir');

$modules=get_loaded_extensions();
foreach($modules as $m){
    $lib=$extdir.'/'.$m.'.so';
    if (file_exists($lib)) {
        print "$m: dynamically loaded\n";
    } else {
        print "$m: statically loaded\n";
    }
}

Это не надежное, но может быть достаточно для вас!

Ответ 2

Просто запустите эту команду в командной строке:

php -m

или для получения дополнительной информации:

php -i

Надеюсь, что это поможет.

Ответ 3

1) Запустите

php -i

на выходе найдите следующие параметры:

Загруженный файл конфигурации - это укажет расположение файла php.ini, используемого вашим php.

Сканировать этот каталог для дополнительных файлов .ini.. Если это не пусто, некоторые из файлов .ini в этом каталоге будут динамически загружать расширения php.

Дополнительные файлы .ini проанализированы -.ini файлы, загруженные из каталога, указанного в предыдущем параметре.

Если вы используете Linux, вы можете:

php -i | grep -e "Loaded Configuration File" -e "Scan this dir for additional .ini files" -e "Additional .ini files parsed"

2) Переименуйте файл php.ini и переименуйте папку с дополнительными файлами .ini.

3) Повторите шаг # 1 и убедитесь, что Загруженный файл конфигурации и Дополнительные файлы .ini, обработанные, имеют значение (none)

4) Запустите

php -m

Теперь вы увидите список, содержащий только расширения, встроенные в двоичный файл php.