Проверка динамически загружаемых расширений 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.