in How To

How to: PHP – risolvere l’errore Call to undefined function mysqli_init()

Avviando una pagina php che faccia accesso ad un database MySQL può capitare di ricevere questo messaggio di errore

Call to undefined function mysqli_init()

Il problema potrebbe essere dovuto al mancato caricamento del modulo MySQL in PHP.

Per installare il modulo mysqli sarà sufficiente utilizzare il comando

sudo apt-get install php-mysqli

o se dovesse essere necessario installare un modulo per un versione specifica di PHP occorre indicarla nel comando seguendo questo formato phpX.Y-mysqli. Ad esempio per la versione 7.2 il comando esatto è

sudo apt-get install php7.2-mysqli

Oltre a installare la libreria nel sistema occorre anche abilitare il modulo nella configurazione PHP.

La lista dei moduli PHP caricati è indicata nel file php.ini.

Verifichiamo quale file php.ini viene utilizzato attraverso il comando

php --ini

che indicherà tutti i file ini utilizzati da PHP.

Configuration File (php.ini) Path: /etc/php/7.2/cli
Loaded Configuration File:         /etc/php/7.2/cli/php.ini
Scan for additional .ini files in: /etc/php/7.2/cli/conf.d
Additional .ini files parsed:      /etc/php/7.2/cli/conf.d/10-opcache.ini,
/etc/php/7.2/cli/conf.d/10-pdo.ini,
/etc/php/7.2/cli/conf.d/20-calendar.ini,
/etc/php/7.2/cli/conf.d/20-ctype.ini,
/etc/php/7.2/cli/conf.d/20-exif.ini,
/etc/php/7.2/cli/conf.d/20-fileinfo.ini,
/etc/php/7.2/cli/conf.d/20-ftp.ini,
/etc/php/7.2/cli/conf.d/20-gettext.ini,
/etc/php/7.2/cli/conf.d/20-iconv.ini,
/etc/php/7.2/cli/conf.d/20-json.ini,
/etc/php/7.2/cli/conf.d/20-phar.ini,
/etc/php/7.2/cli/conf.d/20-posix.ini,
/etc/php/7.2/cli/conf.d/20-readline.ini,
/etc/php/7.2/cli/conf.d/20-shmop.ini,
/etc/php/7.2/cli/conf.d/20-sockets.ini,
/etc/php/7.2/cli/conf.d/20-sysvmsg.ini,
/etc/php/7.2/cli/conf.d/20-sysvsem.ini,
/etc/php/7.2/cli/conf.d/20-sysvshm.ini,
/etc/php/7.2/cli/conf.d/20-tokenizer.ini

Apriamo il file /etc/php/7.2/cli/php.ini utilizzando

nano /etc/php/7.2/cli/php.ini

Nel file cerchiamo il testo mysqli preceduto da ;extension.

La riga della configurazione è così riportata

;extension=mysqli

Il “;” indica che la riga è un commento. Sarà quindi sufficiente cancellare il “;” e salvare il file.

extension=mysqli

A questo punto sarà sufficiente riavviare Apache per ricaricare la configurazione PHP aggiornata

apachectl restart

e tutto dovrebbe essere risolto.

Scrivi un commento

Commento