Directory articoli
Cosa fare quando l'amministratore visualizza il messaggio "Nessuna estensione PHP supportata disponibile (SQLite3, PDO_SQLite)" all'apertura del database SQLite? Questo articolo fornisce una guida passo passo su come modificare il file php.ini e installare e abilitare le estensioni pdo_sqlite e sqlite3. Il riavvio del servizio avrà effetto immediato. Risolvi il problema facilmente in 1 minuto!
Negli ultimi due giorni ho lavorato a qualcosa, ed è stato così frustrante che sto quasi mettendo in discussione la mia stessa esistenza.
Ho installato Adminer su HestiaCP , il leggero strumento di gestione di database, sperando di utilizzarlo per gestire un database SQLite. Tuttavia, all'apertura della pagina, è comparso un messaggio pop-up in rosso con la scritta: "Non sono disponibili estensioni PHP supportate (SQLite3, PDO_SQLite)".

Sono rimasto sbalordito.
Cosa significa? Ho SQLite installato e PHP è in esecuzione. Perché l'estensione non è disponibile?
A dire il vero, inizialmente pensavo fosse un problema di Admin stesso, quindi ho riavviato il servizio diverse volte e l'ho persino reinstallato, ma il problema persisteva. In seguito, ho capito che non aveva nulla a che fare con Admin; il problema derivava da un errore comune in cui cadono molti principianti.
Problemi di estensione causati dal meccanismo PHP multi-versione di HestiaCP.
HestiaCP supporta l'esecuzione simultanea di più versioni di PHP.
Questo significa che puoi installare PHP 7.4, 8.0, 8.1, 8.2 e 8.3 contemporaneamente sul tuo server e che diversi siti web possono essere associati a diverse versioni di PHP. Sembra piuttosto avanzato, vero? Ma ecco il problema: quando digiti direttamente...php -mQuando si controlla il modulo, viene utilizzata la versione PHP predefinita del sistema, che potrebbe essere completamente diversa dalla versione effettivamente associata al sito web.
Ho passato un'infinità di tempo a cercare e ho scoperto che il mio sito web è vincolato a PHP 8.2, ma il terminale mostra la versione 8.1. Non c'è da stupirsi se non riesco a trovare il modulo sqlite.
Questa sensazione è assurda. È come andare al ristorante per ordinare qualcosa da mangiare e il cameriere ti dice che il piatto non è disponibile. Ma poi scopri che non è affatto non disponibile, semplicemente ti sei rivolto alla persona sbagliata. Devi parlare con la cucina perché funzioni.
Come determinare la versione di PHP utilizzata da un sito web
La soluzione è semplice: innanzitutto, bisogna scoprire quale versione di PHP utilizza il proprio sito web e poi installare le estensioni corrispondenti.
Il primo passo è determinare quale versione di PHP sta utilizzando il tuo sito.
Accedi al pannello di controllo di HestiaCP, vai alla pagina web, trova il dominio in cui hai installato Admin, clicca su "Modifica" e controlla il campo "Versione PHP del server web". Il numero visualizzato è quello corretto. Potrebbe essere 8.1, 8.2 o 8.3; devi prima verificarlo.
Molti saltano questo passaggio, pensando che non sia importante dato che si tratta comunque di PHP. Ma in realtà è fondamentale: se i numeri di versione non corrispondono, installare altre estensioni non servirà a nulla.
Installa la versione corrispondente dell'estensione SQLite.
Il secondo passaggio consiste nell'installare la versione corrispondente dell'estensione SQLite.
Una volta che conosci il numero di versione, puoi installarlo direttamente utilizzando il gestore di pacchetti del tuo sistema. Supponendo che il tuo sito utilizzi PHP 8.2, allora:
apt update
apt install php8.2-sqlite3 -ySe il tuo sito utilizza la versione 8.1 o 8.3, è sufficiente modificare il numero di versione.
A dire il vero, non ero sicuro di quale versione avessi, quindi ho installato quelle più comuni:
apt install php8.1-sqlite3 php8.2-sqlite3 php8.3-sqlite3 -yIn questo modo, è compatibile con qualsiasi versione, facendovi risparmiare tempo e fatica.
Riavvia il servizio PHP-FPM affinché l'estensione abbia effetto.
Il terzo passaggio consiste nel riavviare il servizio PHP-FPM.
Questo è un passaggio che molti trascurano. Dopo aver installato l'estensione, aggiornano immediatamente la pagina, ma continuano a ricevere un errore. Il problema non è che l'estensione non sia stata installata; il problema è che non hanno riavviato il processo PHP-FPM corrispondente e la nuova estensione non è ancora stata caricata.
Comando di riavvio:
systemctl restart php8.2-fpm
systemctl restart nginxÈ possibile modificare il numero di versione in base alle proprie esigenze.
Verifica che l'estensione SQLite sia stata installata correttamente.
Il quarto passo è verificarlo.
È possibile specificare un percorso specifico per la versione di PHP da controllare:
php8.2 -m | grep -i sqliteSe l'output contienepdo_sqliteosqlite3Ciò significa che l'installazione è andata a buon fine. Ora, aggiorna la pagina di amministrazione nel tuo browser e il messaggio di avviso rosso dovrebbe scomparire.
Ecco come l'ho capito passo dopo passo, partendo dal pensare inizialmente "Cos'è questo?" per poi realizzare "Ah, capisco", e ho fatto parecchie deviazioni lungo il percorso. Il problema principale era che la progettazione PHP multi-versione di HestiaCP era effettivamente soggetta a insidie; se non si aveva familiarità con la sua logica, era facile sbagliare fin dal primo passo.
Qualcuno potrebbe chiedersi: perché rendere HestiaCP così complicato? Non si potrebbe semplicemente usare un'unica versione unificata di PHP? La scelta progettuale è sensata: siti web diversi potrebbero basarsi su funzionalità PHP differenti e imporre una versione uniforme potrebbe causare problemi di compatibilità. Tuttavia, questo meccanismo non è molto intuitivo per i principianti e non viene particolarmente evidenziato nella documentazione.
La mia esperienza personale mi dice che quando si utilizzano pannelli come HestiaCP, è fondamentale acquisire l'abitudine di individuare innanzitutto la versione di PHP a cui è associato il proprio sito web. Che si tratti di installare estensioni, modificare configurazioni o risolvere problemi, questo numero di versione è il punto di partenza più importante. Molte volte, quello che si pensa sia un problema con un determinato servizio è in realtà solo un'incompatibilità di versione.
Come descrivere la sensazione? È come portare la macchina a riparare e il meccanico dice che non ha il pezzo. Poi si scopre che ce l'ha, ma sei andato nell'officina sbagliata e devi andare in quella accanto. Sembra un po' sciocco, ma è proprio così.
Bene, con questo si conclude la mia esperienza nella risoluzione dell'errore di amministratore su HestiaCP. Spero possa esservi d'aiuto se doveste riscontrare lo stesso problema.
Speriamo che l'articolo "L'amministratore visualizza il messaggio 'Nessuna estensione PHP supportata disponibile'? Risolvi l'errore SQLite3/PDO_SQLite in 1 minuto" condiviso sul blog di Chen Weiliang ( https://www.chenweiliang.com/ ) possa esserti d'aiuto.
Sentitevi liberi di condividere il link di questo articolo: https://www.chenweiliang.com/cwl-34411.html
