PHP
PHP расширение: что это такое и как проверить модули PHP
Короткий ответ: “PHP расширение” может означать две разные вещи. Первое — расширение файла .php, то есть окончание имени файла, по которому сервер понимает, что файл нужно выполнить как PHP. Второе — расширение PHP как модуль языка: mysqli, pdo_mysql, curl, mbstring, gd, intl, zip и другие
Именно из-за этой двойственности запрос часто приводит к путанице. Один человек хочет понять, чем открыть файл index.php, другой видит ошибку “extension not loaded”, третий пытается установить WordPress и получает предупреждение о недостающем модуле. Поэтому разбирать нужно оба смысла
Расширение файла .php
Файл с расширением .php — это обычный текстовый файл, внутри которого может быть PHP-код, HTML, CSS-фрагменты и шаблонная разметка. Его можно открыть в любом редакторе кода: Visual Studio Code, PhpStorm, Sublime Text, Notepad++ или даже обычным блокнотом, если нужно только посмотреть содержимое
Пример файла index.php
<?php
echo "Страница работает";
Но важно понимать: если открыть такой файл двойным кликом на компьютере, PHP-код не выполнится. Чтобы код отработал, файл нужно запускать через PHP-интерпретатор или через локальный/серверный веб-сервер
Расширение PHP как модуль
Расширение PHP как модуль — это подключаемая возможность языка. Например, без pdo_mysql PHP не сможет работать с MySQL через PDO, без curl многие интеграции не смогут делать HTTP-запросы, без gd или imagick будут проблемы с обработкой изображений
Проверить установленные расширения в терминале можно так
php -m
Проверить конкретный модуль можно так
php -m | grep mbstring
В PHP-коде можно проверить расширение функцией extension_loaded()
<?php
if (extension_loaded('mbstring')) {
echo "mbstring подключен";
} else {
echo "mbstring не найден";
}
Как посмотреть расширения через браузер
Создайте временный файл phpinfo.php
<?php
phpinfo();
Откройте его в браузере через сайт или локальный сервер. На странице будет список загруженных модулей и активный php.ini. После проверки удалите файл, потому что он показывает слишком много технических параметров сервера
Как включить расширение в php.ini
Иногда модуль установлен, но не включен. В php.ini строка может выглядеть так
;extension=curl
Точка с запятой в начале означает, что строка закомментирована. Чтобы включить расширение, уберите точку с запятой
extension=curl
После изменения php.ini перезапустите веб-сервер или PHP-FPM. Если вы проверяете через терминал, иногда достаточно открыть новый терминал, но для сайта нужен перезапуск процесса, который выполняет PHP
Почему терминал и сайт видят разные расширения
Команда php -m показывает расширения PHP для командной строки. Сайт в браузере может работать через другой PHP, другой php.ini и другой набор расширений. Поэтому если WordPress или CMS пишет, что модуль не найден, проверяйте phpinfo() именно через браузер
Типичная ситуация: в терминале pdo_mysql есть, а сайт говорит, что подключения к базе нет. Значит веб-версия PHP использует другой конфиг или другую версию PHP
Мини-практика
Создайте файл extensions.php
<?php
$extensions = ['curl', 'mbstring', 'pdo_mysql', 'gd', 'zip'];
foreach ($extensions as $extension) {
echo $extension . ': ';
echo extension_loaded($extension) ? 'есть' : 'нет';
echo PHP_EOL;
}
Запустите его в терминале
php extensions.php
Потом откройте аналогичный файл через браузер. Если список отличается, у вас разные окружения для CLI и сайта
Частые ошибки
Думают, что .php — это отдельная программа. На самом деле это расширение файла, а выполняет его интерпретатор PHP
Включают расширение в неправильном php.ini. Нужно смотреть активный конфиг через phpinfo() или php --ini
Проверяют только терминал. Для сайта важнее та версия PHP, которую видит браузер
Устанавливают расширение, но не перезапускают веб-сервер или PHP-FPM. В результате модуль есть в системе, но сайт его еще не видит
Путают mysqli и pdo_mysql. Оба связаны с MySQL, но используются разными способами
Что почитать дальше по PHP
Если нужен общий маршрут по теме, откройте рубрику PHP. Для соседних задач пригодятся эти разборы:
- PHP-скрипт: что это такое и как написать первый файл
- Timeweb: как изменить версию PHP на хостинге и проверить сайт
- in_array в PHP: как проверить, есть ли значение в массиве
- Как выбрать версию PHP на FirstVDS и проверить сайт