Missing MySQLi critical
Your PHP Installation Appears to Be Missing the MySQL Extension
PHP has no working MySQL driver (mysqli) loaded, so WordPress can't connect to the database and the whole site is down.
What you see
Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
What’s actually happening
Every page — front end and wp-admin — shows this single white-page message. Nothing else loads. It usually appears right after a PHP version change on the server, a host migration, or a php.ini edit. The database itself is fine; PHP just has no driver to talk to it.
Common causes
- The host (or you) upgraded PHP and the mysqli extension wasn't installed or carried over for the new version. Each PHP version has its own extension set.
- mysqli is installed but commented out or disabled in php.ini — the extension=mysqli line has a semicolon in front of it.
- You're running a very old WordPress version that still calls the long-removed mysql_* functions on PHP 7+, where that extension no longer exists. The fix there is to update WordPress, not add the old extension.
- The extension_dir path in php.ini is wrong, so PHP can't find mysqli.so even though it's on disk.
- A control-panel PHP selector (cPanel MultiPHP, Plesk) silently reset the enabled extensions when the version was switched.
How to fix it
- Confirm which extensions PHP actually has loadedMake a temp file phpinfo.php containing <?php phpinfo(); and load it in the browser, or run php -m on the CLI. Search for "mysqli". If it's absent, the extension genuinely isn't loaded. Delete the temp file immediately after — it exposes server internals.
- Enable mysqli in php.iniFind the active php.ini (phpinfo shows "Loaded Configuration File"). Locate ;extension=mysqli and remove the leading semicolon so it reads extension=mysqli. On Windows builds it's extension=php_mysqli.dll. Save and restart Apache or PHP-FPM — the change does nothing until the service restarts.
- Install the PHP MySQL package on the serverIf the extension isn't on disk at all, install it for your exact PHP version. Debian/Ubuntu: sudo apt install php8.2-mysql then sudo systemctl restart php8.2-fpm. RHEL/AlmaLinux: sudo dnf install php-mysqlnd and restart php-fpm. Match the version number to the PHP you're running.
- Re-enable it in your control panel's PHP selectorOn cPanel go to MultiPHP INI Editor or "Select PHP Version" > Extensions and tick mysqli (and nd_mysqli). On Plesk it's under PHP Settings for the domain. Switching PHP versions often unticks these, so just re-check the box and apply.
- If WordPress is ancient, update it insteadIf the site is on a WordPress release older than 3.9 sitting on PHP 7 or 8, it's calling functions that no longer exist. Don't try to resurrect the dead mysql extension. Roll PHP back to 5.6 temporarily to get in, update WordPress to a current version, then move PHP back up.
Stop it recurring
Before any PHP version bump, verify the target version has mysqli enabled — and run WordPress on a supported release so it uses mysqli, not the removed mysql functions.
Related errors