Skip to content

Всё для WordPress, веб-разработки — и не только

🔧 Ошибка «PHP missing MySQL extension» в WordPress: как исправить за 10 минут

🔧 Ошибка «PHP missing MySQL extension» в WordPress: как исправить за 10 минут

Вы заходите проверить сайт на WordPress, а вместо админки белый экран с ошибкой: «Your PHP installation appears to be missing the MySQL extension which is required by WordPress». Перезагрузка не помогает, хостинг-провайдер молчит, сайт висит мёртвым грузом.

Такая ошибка не приговор серверу и не повод паниковать. Чаще всего она возникает после обновления PHP, переноса сайта на другой VPS или смены операционной системы. WordPress теряет мост между PHP и MySQL, и его можно восстановить за 10 минут.

Ниже пошаговое руководство: от диагностики до финальной перезагрузки конфигурации. Все команды актуальны для PHP 8.0-8.4, серверов на Ubuntu, RedHat-совместимых дистрибутивах и хостингов с cPanel.

💡 Быстрый обзор:

  • Проверьте текущую версию PHP и активные расширения через Site Health WordPress
  • Установите недостающие модули: sudo apt install php-mysql для Ubuntu или sudo dnf install php-mysqlnd для RHEL
  • Проверьте директиву extension_dir в php.ini, при миграции сервера путь часто сбивается
  • Включите mysqli и pdo_mysql через панель хостинга (cPanel, Plesk) в два клика
  • Убедитесь, что версии WordPress и PHP совместимы: обе должны быть свежими

1. Проверьте версию PHP и активные расширения

Самый быстрый способ диагностики, встроенный в WordPress инструмент Site Health. Зайдите в админку: Инструменты, Site Health, вкладка Info. Раскройте секцию Server, здесь указана версия PHP. Если она ниже 7.4, пора обновляться: согласно требованиям WordPress, минимальная версия PHP для WP 6.x, 7.4, а рекомендуемая, 8.0+.

Теперь раскройте секцию Database. Если строки mysqli и pdo_mysql пусты или отсутствуют, причина ошибки найдена. WordPress пытается использовать расширение, которого нет в сборке PHP.

Попутно проверьте секцию Filesystem: проблемы с правами доступа могут косвенно влиять на загрузку PHP-модулей.

Если админка недоступна (белый экран наглухо), создайте файл info.php в корне сайта с кодом <?php phpinfo(); и откройте его в браузере. Первая строка покажет точную версию PHP, а поиск по mysqli, наличие расширения.

2. Установите расширения mysqli и PDO MySQL через консоль

Подключаетесь к серверу по SSH и проверяете, что установлено:

1php -v
2php -m | grep -E 'mysqli|pdo_mysql'

Если mysqli и pdo_mysql отсутствуют в выводе, устанавливаем. Команды различаются в зависимости от дистрибутива.

Ubuntu / Debian:

1sudo apt update
2sudo apt install php-mysql

Пакет php-mysql тянет за собой mysqli, pdo_mysql и драйвер mysqlnd, всё, что нужно WordPress. При нескольких версиях PHP укажите конкретную: php8.2-mysql, php8.3-mysql. Детали установки описаны в руководстве PHP по mysqli.

RHEL / CentOS / AlmaLinux:

1sudo dnf update
2sudo dnf install php-mysqlnd

После установки перезапустите веб-сервер:

1sudo systemctl restart apache2
2sudo systemctl restart php8.3-fpm
3sudo systemctl restart nginx

В большинстве случаев ошибка исчезает сразу после перезапуска.

3. Проверьте директиву extension_dir в php.ini

Пакеты установлены, но WordPress продолжает ругаться? Такое бывает при переносе сайта: PHP-конфигурация «переехала» со старыми путями к новому серверу.

Откройте info.php в браузере и найдите параметр Loaded Configuration File, это путь к активному php.ini.

Путь к загруженному конфигурационному файлу PHP в выводе phpinfo

Теперь найдите extension_dir, директорию, откуда PHP подгружает модули. Если значение пустое или указывает на несуществующую папку, mysqli.so не загрузится, и WordPress не увидит MySQL.

Значение директивы extension_dir в выводе phpinfo

Откройте php.ini (путь уже знаете) и найдите строку extension_dir. Приведите её к актуальному значению. На Ubuntu 22.04/24.04 с PHP 8.3 это обычно:

1extension_dir = "/usr/lib/php/20230831"

На серверах с cPanel путь другой, смотрите точное значение в info.php.

Секция поддержки MySQL в выводе phpinfo с версией клиентской библиотеки

После правок сохраните php.ini, перезапустите веб-сервер и обязательно удалите info.php, публичный phpinfo() раскрывает версии модулей и абсолютные пути сервера.

4. Включите расширения через панель управления хостингом

Работаете через панель, а не консоль? Большинство хостинг-панелей управляют расширениями мышкой:

  • cPanel: Select PHP Version, галочки напротив mysqli и pdo_mysql, сохранить. Там же переключите версию PHP на современную.
  • Plesk: Domains, ваш домен, PHP Settings, найдите mysqli и pdo_mysql в списке расширений.
  • DirectAdmin: Extra Features, Select PHP Version, отметьте нужные расширения.
  • **SiteGround, Cloudways, **Kinsta и другие managed-хостинги: раздел PHP Extensions в панели сайта.

После включения расширений панель сама перезапустит PHP, сайт заработает в течение минуты.

5. Убедитесь, что версии WordPress и PHP совместимы

WordPress 6.x (актуальная версия на 2026 год) требует минимум PHP 7.4 и рекомендует 8.0+. Если вы сидите на PHP 7.0 или 7.1, даже установленные расширения не спасут: ядро WP ожидает модули под современную версию PHP.

Проверьте совместимость: админка, Инструменты, Site Health, Info, Server. PHP ниже 7.4, обновляйте:

  • Shared-хостинг: панель управления (cPanel/Plesk), переключите PHP на 8.2 или 8.3.
  • VPS: обновите через пакетный менеджер:
1sudo apt update
2sudo apt install php8.3 php8.3-mysql php8.3-xml php8.3-curl php8.3-mbstring

После обновления PHP обновите и WordPress: Dashboard, Updates, Update Now. Старые версии WP ссылаются на расширение mysql, удалённое из PHP ещё в 2015 году, отсюда и ошибка.

Кстати, о близкой проблеме: если WordPress ругается на нехватку памяти при переезде, у нас есть разбор, как увеличить лимит памяти PHP в WordPress.

Что ещё может пойти не так

Если 5 способов перепробованы, а ошибка осталась, два краевых случая.

Устаревшие строки в php.ini. После обновления PHP с 5.x до 8.x в php.ini могут остаться строки extension=mysql.so. В PHP 8 такого файла нет: модуль удалён из ядра. Откройте php.ini и закомментируйте или удалите mysql.so, mysql.dll и libmysql. Список удалённых расширений, в руководстве по миграции PHP.

Несколько версий PHP на сервере. На VPS часто соседствуют PHP 7.4 и PHP 8.3. Команда php -m показывает модули CLI-версии, а сайт может использовать другую, ту, что настроена в Apache/FPM. Проверьте info.php: первая строка, точная версия PHP для веба. Ставьте пакеты под неё.

Видео от команды Hostinger показывает установку расширений через cPanel и консоль, 4 минуты, и картина полностью ясна.

⁉️🤔 Частые вопросы

Почему ошибка говорит про MySQL extension, если нужен mysqli?

Сообщение об ошибке не менялось с эпохи PHP 5.x. Тогда расширение называлось mysql, и WordPress проверял именно его. В PHP 8.x расширение mysql удалено полностью, WordPress использует mysqli или PDO_MySQL. Текст ошибки остался прежним по историческим причинам. Устанавливайте пакет php-mysql: он содержит и mysqli, и pdo_mysql, и mysqlnd, всё, что нужно WordPress.

Можно ли исправить ошибку без доступа к серверу?

Да, если сайт на shared-хостинге. Зайдите в панель управления (cPanel, Plesk, DirectAdmin), найдите «Select PHP Version» или «PHP Settings», включите mysqli и pdo_mysql галочками. Панель сама перезапустит PHP, доступ к консоли не нужен. На хостингах вроде Hostinger или Bluehost эти расширения включены по умолчанию; если ошибка возникла после смены тарифа, поддержка активирует модули за пару минут.

Что делать, если после всех исправлений сайт не работает?

Проверьте три момента. Первое: откройте info.php и убедитесь, что mysqli отображается с версией Client API. Нет секции, модуль не загрузился, перепроверьте extension_dir. Второе: перезапустите веб-сервер целиком, sudo systemctl restart apache2 (или nginx плюс php-fpm). Третье: сверьте DB_HOST, DB_NAME, DB_USER и DB_PASSWORD в wp-config.php, иногда ошибка маскирует неверные реквизиты базы данных.

Нужно ли переходить на MariaDB, если ошибка повторяется?

Нет, замена сервера баз данных не решит проблему. Ошибка связана исключительно с PHP-расширениями. MariaDB, это ответвление MySQL, и WordPress работает с ним через те же mysqli или PDO. Большинство хостингов уже перешли на MariaDB по умолчанию, сайты на WordPress прекрасно с ней функционируют.

Обязательно ли ставить именно PHP 8.3?

Нет, подойдёт любая версия PHP 8.x (8.0-8.4). Главное, не ниже 7.4. Рекомендуем 8.2 или 8.3: это стабильные ветки с активной поддержкой безопасности на 2026 год, согласно официальному графику PHP. PHP 8.0 и 8.1 уже в статусе security-fixes-only, а PHP 7.4 не получает патчей с ноября 2022.

Стоит ли паниковать при этой ошибке

Ошибка «отсутствует расширение MySQL» выглядит устрашающе, но по сути это сигнал: сервер настроен не до конца. PHP без модуля для работы с базой, как машина без ключа зажигания. Описанные методы покрывают абсолютное большинство случаев, системный администратор для них не требуется.

После исправления наведите гигиену: удалите info.php, обновите WordPress и плагины до последних версий, настройте автоматические бэкапы через UpdraftPlus или хостинг-панель. Тогда следующий переезд или обновление PHP пройдут без сюрпризов.