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. Для соседних задач пригодятся эти разборы:

Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные

Настройки cookie

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x