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 пройдуть без сюрпризів.