Что делать, если не отображается стандартное расширение PHP

01.04.2026
15:45

Стандартные расширения PHP — это модули, входящие в поставку PHP и расширяющие его базовую функциональность. Они позволяют работать с базами данных, обрабатывать изображения, выполнять HTTP‑запросы, манипулировать строками и т. д.

Типы стандартных расширений

  1. Core Extensions (ядро) — встроены в PHP по умолчанию и всегда доступны. Не требуют отдельной активации. Примеры: обработка массивов, строк, работа с датой и временем.
  2. Bundled Extensions (поставляемые с PHP) — идут в комплекте с дистрибутивом PHP, но по умолчанию могут быть отключены. Их нужно явно включить в конфигурации (php.ini). Примеры: json, zip, mbstring.
  3. PECL Extensions — расширения из официального репозитория PHP Extension Community Library. Некоторые из них со временем интегрируются в основную поставку.

Примеры стандартных расширений и их назначение

  • mysqli / PDO — подключение к базам данных MySQL; функции: mysqli_connect(), PDO::query().
  • GD — создание и обработка изображений; функция: imagecreate().
  • cURL — выполнение HTTP‑запросов к API и внешним сервисам; функция: curl_init().
  • JSON — кодирование и декодирование данных в формате JSON; функции: json_encode(), json_decode().
  • mbstring — работа с многобайтовыми строками (включая Unicode и UTF‑8); функция: mb_strlen().
  • OpenSSL — криптографические операции (шифрование, подписи); функция: openssl_encrypt().
  • Zip — создание и распаковка ZIP‑архивов; функция: zip_open().
  • XML — парсинг и генерация XML‑документов.
  • OPcache — кэширование опкода для ускорения выполнения PHP‑скриптов.

Как проверить установленные расширения

Через функцию phpinfo()

Создайте файл info.php со содержимым:

php
<?php
phpinfo();
?>

Откройте его в браузере — в выводе будет раздел «Configure Command» (статически скомпилированные модули) и список загруженных расширений.

Через код PHP

Показать все загруженные расширения:

php
<?php
print_r(get_loaded_extensions());
?>

Проверить наличие конкретного расширения:

php
<?php
if (extension_loaded('mysqli')) {
    echo "Расширение mysqli загружено";
} else {
    echo "Расширение mysqli не загружено";
}
?>

Через командную строку

Выполните в терминале:

php -m

Эта команда выведет список всех установленных и загруженных расширений PHP.

Где находятся файлы расширений

Linux/Unix: обычно в каталоге /usr/lib/php/modules/ или /usr/local/lib/php/extensions/

Windows: в папке ext/ внутри директории установки PHP (например, C:\php\ext\).

Включение/выключение расширений

Чтобы активировать или деактивировать расширение, отредактируйте файл php.ini:

  1. Найдите строку вида extension=mbstring (или extension=php_mbstring.dll в Windows).
  2. Уберите точку с запятой (;) в начале строки, чтобы включить расширение, либо добавьте её — чтобы отключить.
  3. Перезапустите веб‑сервер (Apache, Nginx + PHP‑FPM и т. п.).

Почему может не отображаться расширение?

Как проявляется проблема? В панели ispmanager 6 в настройках PHP не отображается расширение, которое входит в стандартную сборку.

Также расширение отсутствует в списке при запросе по команде:

php -m

для нативного PHP

/opt/phpXX/bin/php -m

для альтернативных версий PHP

Причина чаще всего заключается в том, что для файла расширения присутствует зацикленная символическая ссылка. Например, так выглядит расширение posix для альтернативного PHP версии 7.3 с зацикленной символической ссылкой:

# cat /opt/php73/etc/mods-available/posix.ini

lrwxrwxrwx 1 root root 39 Dec 19  2024 /opt/php73/etc/php.d/20-posix.ini -> /opt/php73/etc/mods-available/posix.ini

Как решить проблему?

Для этого нужно поменять содержимое файла PHP-расширения в формате INI в директории /etc/php/XX/mods-available/ (путь для альтернативных версий)

PHP - /opt/phpXX/etc/mods-available/) на следующее:

extension=%ИМЯ_РАСШИРЕНИЯ%.so

Например, для расширения posix для альтернативного PHP версии 7.3 содержимое будет следующим:

extension=posix.so