
🔧 Errore PHP missing MySQL extension in WordPress: come risolverlo in 10 minuti
Visiti il tuo sito WordPress per controllare il pannello di amministrazione, ma invece vedi una schermata bianca con un errore: "Your PHP installation appears to be missing the MySQL extension which is required by WordPress". Riavviare non serve, il provider di hosting resta in silenzio, il sito è un peso morto.
Questo errore non è una condanna a morte per il tuo server e non c'è motivo di farsi prendere dal panico. Il più delle volte compare dopo un aggiornamento di PHP, lo spostamento del sito su un altro VPS o un cambio del sistema operativo. WordPress perde il collegamento tra PHP e MySQL, e puoi ripristinarlo in 10 minuti.
Di seguito trovi una guida passo passo: dalla diagnostica al ricaricamento finale della configurazione. Tutti i comandi sono aggiornati per PHP 8.0-8.4, server su Ubuntu, distribuzioni compatibili con RedHat e hosting con cPanel.
💡 Panoramica rapida:
- Verifica la versione corrente di PHP e le estensioni attive tramite Site Health di WordPress
- Installa i moduli mancanti:
sudo apt install php-mysqlper Ubuntu osudo dnf install php-mysqlndper RHEL - Controlla la direttiva
extension_dirnel php.ini: durante la migrazione del server il percorso spesso si corrompe - Abilita
mysqliepdo_mysqldal pannello del tuo hosting (cPanel, Plesk) in due clic - Assicurati che le versioni di WordPress e PHP siano compatibili: entrambe devono essere aggiornate
1. Verifica la versione PHP e le estensioni attive
Il metodo diagnostico più rapido è lo strumento integrato Site Health di WordPress. Vai al pannello di amministrazione: Strumenti, Site Health, scheda Info. Espandi la sezione Server, qui troverai la versione PHP. Se è inferiore alla 7.4, è ora di aggiornare: secondo i requisiti di WordPress, la versione PHP minima per WP 6.x è la 7.4, e quella raccomandata è la 8.0+.
Ora espandi la sezione Database. Se le righe mysqli e pdo_mysql sono vuote o assenti, hai trovato la causa dell'errore. WordPress sta cercando di usare un'estensione che non esiste nella build di PHP.
Già che sei lì, controlla la sezione Filesystem: i problemi di permessi possono influenzare indirettamente il caricamento dei moduli PHP.
Se il pannello di amministrazione è inaccessibile (schermata bianca completa), crea un file info.php nella root del sito con il codice <?php phpinfo(); e aprilo nel browser. La prima riga mostrerà la versione esatta di PHP, e cercando mysqli vedrai se l'estensione esiste.
2. Installa le estensioni mysqli e PDO MySQL da console
Connettiti al server via SSH e verifica cosa è installato:
1 php -v 2 php -m | grep -E 'mysqli|pdo_mysql'
Se mysqli e pdo_mysql mancano dall'output, installale. I comandi variano in base alla distribuzione.
Ubuntu / Debian:
1 sudo apt update 2 sudo apt install php-mysql
Il pacchetto php-mysql include mysqli, pdo_mysql e il driver mysqlnd, tutto ciò che serve a WordPress. Se hai più versioni di PHP, specificane una in particolare: php8.2-mysql, php8.3-mysql. I dettagli sull'installazione sono descritti nel manuale PHP di mysqli.
RHEL / CentOS / AlmaLinux:
1 sudo dnf update 2 sudo dnf install php-mysqlnd
Dopo l'installazione, riavvia il server web:
1 sudo systemctl restart apache2 2 sudo systemctl restart php8.3-fpm 3 sudo systemctl restart nginx
Nella maggior parte dei casi l'errore scompare subito dopo il riavvio.
3. Verificare la direttiva extension_dir in php.ini
I pacchetti sono installati, ma WordPress continua a lamentarsi? Succede durante la migrazione di un sito: la configurazione PHP si è «trasferita» con i vecchi percorsi sul nuovo server.
Apra info.php nel browser e cerchi il parametro Loaded Configuration File, è il percorso del php.ini attivo.
Ora cerchi extension_dir, la directory da cui PHP carica i moduli. Se il valore è vuoto o punta a una cartella inesistente, mysqli.so non verrà caricato e WordPress non vedrà MySQL.
Apra php.ini (conosce già il percorso) e trovi la riga extension_dir. La aggiorni con il valore corrente. Su Ubuntu 22.04/24.04 con PHP 8.3 di solito è:
1 extension_dir = "/usr/lib/php/20230831"
Sui server con cPanel il percorso è diverso, verifichi il valore esatto in info.php.

Dopo le modifiche, salvi php.ini, riavvii il web server e si ricordi di cancellare info.php: un phpinfo() pubblico espone le versioni dei moduli e i percorsi assoluti del server.
4. Abilitare le estensioni dal pannello di controllo dell'hosting
Lavora da pannello invece che da console? La maggior parte dei pannelli di hosting gestisce le estensioni con il mouse:
- cPanel: Select PHP Version, spunti le caselle accanto a
mysqliepdo_mysql, salvi. Già che c'è, passi la versione PHP a una moderna. - Plesk: Domini, il suo dominio, Impostazioni PHP, trovi
mysqliepdo_mysqlnell'elenco estensioni. - DirectAdmin: Extra Features, Select PHP Version, spunti le estensioni necessarie.
- **SiteGround, Cloudways, **Kinsta e altri hosting gestiti: sezione Estensioni PHP nel pannello del sito.
Dopo aver abilitato le estensioni, il pannello riavvierà PHP automaticamente, il sito funzionerà entro un minuto.
5. Verificare la compatibilità tra le versioni di WordPress e PHP
WordPress 6.x (versione corrente nel 2026) richiede come minimo PHP 7.4 e raccomanda 8.0+. Se sta usando PHP 7.0 o 7.1, nemmeno le estensioni installate serviranno: il core di WP si aspetta moduli per una versione PHP moderna.
Verifichi la compatibilità: pannello di amministrazione, Strumenti, Salute del sito, Info, Server. Se PHP è inferiore a 7.4, aggiorni:
- Hosting condiviso: pannello di controllo (cPanel/Plesk), passi PHP a 8.2 o 8.3.
- VPS: aggiorni tramite package manager:
1 sudo apt update 2 sudo apt install php8.3 php8.3-mysql php8.3-xml php8.3-curl php8.3-mbstring
Dopo aver aggiornato PHP, aggiorni anche WordPress: Bacheca, Aggiornamenti, Aggiorna ora. Le vecchie versioni di WP fanno riferimento all'estensione mysql, rimossa da PHP già nel 2015, da qui l'errore.
A proposito di un problema correlato: se WordPress segnala carenza di memoria durante la migrazione, abbiamo un approfondimento su come aumentare il limite di memoria PHP in WordPress.
Cos'altro può andare storto
Se ha provato tutti e 5 i metodi e l'errore persiste, ecco due casi limite.
Righe obsolete in php.ini. Dopo l'aggiornamento di PHP da 5.x a 8.x, php.ini potrebbe contenere righe residue come extension=mysql.so. In PHP 8 questo file non esiste: il modulo è stato rimosso dal core. Apra php.ini e commenti o cancelli mysql.so, mysql.dll e libmysql. L'elenco delle estensioni rimosse si trova nella guida alla migrazione PHP.
Versioni PHP multiple sul server. Su VPS, spesso coesistono PHP 7.4 e PHP 8.3. Il comando php -m mostra i moduli per la versione CLI, ma il sito potrebbe usarne una diversa, quella configurata in Apache/FPM. Controlli info.php: la prima riga mostra la versione PHP esatta per il web. Installi i pacchetti per quella.
Un video del team Hostinger mostra l'installazione dell'estensione tramite cPanel e console, 4 minuti e il quadro è completamente chiaro.
⁉️🤔 Domande frequenti
Perché l'errore menziona l'estensione MySQL quando serve mysqli?
Il messaggio di errore non è cambiato dall'epoca di PHP 5.x. Allora l'estensione si chiamava
mysqle WordPress la verificava specificamente. In PHP 8.x l'estensionemysqlè stata completamente rimossa, WordPress usamysqlioPDO_MySQL. Il testo dell'errore è rimasto lo stesso per ragioni storiche. Installa il pacchettophp-mysql: contienemysqli,pdo_mysqlemysqlnd, tutto ciò che serve a WordPress.
Si può correggere l'errore senza accesso al server?
Sì, se il sito è su hosting condiviso. Accedi al pannello di controllo (cPanel, Plesk, DirectAdmin), cerca "Seleziona versione PHP" o "Impostazioni PHP", abilita
mysqliepdo_mysqlcon le caselle di spunta. Il pannello riavvierà PHP automaticamente, non serve accesso alla console. Su hosting come Hostinger o Bluehost queste estensioni sono attive per impostazione predefinita; se l'errore è comparso dopo un cambio di piano, l'assistenza attiverà i moduli in un paio di minuti.
Cosa fare se il sito non funziona dopo tutte le correzioni?
Verifica tre cose. Primo: apri
info.phpe controlla chemysqlicompaia con una versione Client API. Se la sezione manca, il modulo non è stato caricato, ricontrollaextension_dir. Secondo: riavvia l'intero server web,sudo systemctl restart apache2(oppurenginxpiùphp-fpm). Terzo: verifica DB_HOST, DB_NAME, DB_USER e DB_PASSWORD inwp-config.php, a volte l'errore nasconde credenziali del database errate.
Bisogna passare a MariaDB se l'errore si ripete?
No, sostituire il server database non risolve il problema. L'errore è legato esclusivamente alle estensioni PHP. MariaDB è un fork di MySQL e WordPress ci lavora tramite gli stessi
mysqlioPDO. La maggior parte dei provider di hosting è già passata a MariaDB come impostazione predefinita, i siti WordPress funzionano perfettamente con questo.
È obbligatorio installare proprio PHP 8.3?
No, qualsiasi versione PHP 8.x (8.0-8.4) va bene. L'importante è non scendere sotto la 7.4. Consigliamo la 8.2 o la 8.3: sono rami stabili con supporto di sicurezza attivo nel 2026, secondo il calendario ufficiale PHP. PHP 8.0 e 8.1 sono già in stato di soli fix di sicurezza e PHP 7.4 non riceve più patch da novembre 2022.
Bisogna farsi prendere dal panico per questo errore
L'errore "estensione MySQL mancante" sembra preoccupante, ma in sostanza è un segnale: il server non è configurato completamente. PHP senza un modulo per lavorare con il database è come un'auto senza chiavi di accensione. I metodi descritti coprono la stragrande maggioranza dei casi, non serve un amministratore di sistema.
Dopo la correzione, fai un po' di manutenzione: cancella info.php, aggiorna WordPress e i plugin alle ultime versioni, imposta backup automatici con UpdraftPlus o dal pannello di hosting. Così la prossima migrazione o aggiornamento PHP andrà liscio.



