Skip to content

Tutto per WordPress, lo sviluppo web — e non solo

🔧 Errore PHP missing MySQL extension in WordPress: come risolverlo in 10 minuti

🔧 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-mysql per Ubuntu o sudo dnf install php-mysqlnd per RHEL
  • Controlla la direttiva extension_dir nel php.ini: durante la migrazione del server il percorso spesso si corrompe
  • Abilita mysqli e pdo_mysql dal 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:

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

Se mysqli e pdo_mysql mancano dall'output, installale. I comandi variano in base alla distribuzione.

Ubuntu / Debian:

1sudo apt update
2sudo 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:

1sudo dnf update
2sudo dnf install php-mysqlnd

Dopo l'installazione, riavvia il server web:

1sudo systemctl restart apache2
2sudo systemctl restart php8.3-fpm
3sudo 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.

Percorso del file di configurazione PHP caricato nell'output di phpinfo

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.

Valore della direttiva extension_dir nell'output di phpinfo

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 è:

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

Sui server con cPanel il percorso è diverso, verifichi il valore esatto in info.php.

Sezione supporto MySQL nell'output di phpinfo con versione della libreria client

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 mysqli e pdo_mysql, salvi. Già che c'è, passi la versione PHP a una moderna.
  • Plesk: Domini, il suo dominio, Impostazioni PHP, trovi mysqli e pdo_mysql nell'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:
1sudo apt update
2sudo 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 mysql e WordPress la verificava specificamente. In PHP 8.x l'estensione mysql è stata completamente rimossa, WordPress usa mysqli o PDO_MySQL. Il testo dell'errore è rimasto lo stesso per ragioni storiche. Installa il pacchetto php-mysql: contiene mysqli, pdo_mysql e mysqlnd, 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 mysqli e pdo_mysql con 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.php e controlla che mysqli compaia con una versione Client API. Se la sezione manca, il modulo non è stato caricato, ricontrolla extension_dir. Secondo: riavvia l'intero server web, sudo systemctl restart apache2 (oppure nginx più php-fpm). Terzo: verifica DB_HOST, DB_NAME, DB_USER e DB_PASSWORD in wp-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 mysqli o PDO. 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.