Php startup: unable to load dynamic library mysqli

bismillah ..

hari ini saya dapat error di server web baru yang akan kami deploy ,error nya php tidak bisa me-load ekstensi modul php-mysqli , info modul ekstensi yang aktif di php dapat di lihat di info.php (cara buat nya bisa di lihat di postingan ini)

langsung saja langkah nya :

  • Pastikan package php-mysql nya sudah terinstall , bisa dicek dengan perintah dpkg -l |grep php

[email protected]:~# dpkg -l|grep php
ii libapache2-mod-php7.4 7.4.3-4ubuntu2.4 amd64 server-side, HTML-embedded scripting language (Apache 2 module)
ii php 2:7.4+75 all server-side, HTML-embedded scripting language (default)
ii php-common 2:75 all Common files for PHP packages
ii php-ldap 2:7.4+75 all LDAP module for PHP [default]
ii php-mysql 2:7.4+75 all MySQL module for PHP [default]
ii php7.4 7.4.3-4ubuntu2.4 all server-side, HTML-embedded scripting language (metapackage)
ii php7.4-cli 7.4.3-4ubuntu2.4 amd64 command-line interpreter for the PHP scripting language
ii php7.4-common 7.4.3-4ubuntu2.4 amd64 documentation, examples and common module for PHP
ii php7.4-json 7.4.3-4ubuntu2.4 amd64 JSON module for PHP
ii php7.4-ldap 7.4.3-4ubuntu2.4 amd64 LDAP module for PHP
ii php7.4-mysql 7.4.3-4ubuntu2.4 amd64 MySQL module for PHP
ii php7.4-opcache 7.4.3-4ubuntu2.4 amd64 Zend OpCache module for PHP
ii php7.4-readline 7.4.3-4ubuntu2.4 amd64 readline module for PHP
[email protected]:~#

dari info diatas paket php-mysql nya sudah di ada ,sebagai info saya menggunakan ubuntu 20.04 server

  • Pastikan ekstensi mysqli nya sudah di enable di php.ini nya

saya gubnakan editor nano kemudian saya tekan ctrl+w kemudian ketik mysqli

Php startup: unable to load dynamic library mysqli
pastikan bagian extension=mysqli.so atau extension=mysqli sudah di uncomment

kemudian restart apache nya. nah jika masih error (dikasus saya masih tetap error) maka langkah terakhir

  • Lihat Error Log nya

error log yang saya dapat ketika mulai mengkatifkan extention mysqli nya adalah

Php startup: unable to load dynamic library mysqli

dari log di atas bisa kita lihat ada error

PHP Warning: PHP Startup: Unable to load dynamic library ‘mysqli.so’ (tried: /usr/lib/php/20190902/mysqli.so (/usr/lib/php/20190902/mysqli.so: undefined symbol: mysqlnd_global_stats), /usr/lib/php/20190902/mysqli.so.so (/usr/lib/php/20190902/mysqli.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

yang jadi acuan saya untuk pengecekan di bagian ” undefined symbol: mysqlnd_global_stats ” maka yang saya coba lakuakan , pertama mengecek file mysqlnd.ini di folder /etc/php/7.4/cli/conf.d

Php startup: unable to load dynamic library mysqli

terilhat file 20-mysqlnd.ini merupakan symlink ke file /etc/php/7.4/mods-available/mysqlnd.ini, maka langkah selanjut nya yang saya lakukan mebuka file /etc/php/7.4/mods-available/mysqlnd.ini dan ternyata masih kosong. maka saya tambahkan konfig untuk me load ekstensi mysqlnd nya saya copas isi nya dari file

/usr/share/php7.4-mysql/mysql/mysqlnd.ini

[email protected]:/etc/php/7.4/cli/conf.d# locate mysqlnd.ini
/etc/php/7.4/apache2/conf.d/10-mysqlnd.ini
/etc/php/7.4/cli/conf.d/10-mysqlnd.ini
/etc/php/7.4/mods-available/mysqlnd.ini
/usr/share/php7.4-mysql/mysql/mysqlnd.ini
/var/lib/ucf/cache/:etc:php:7.4:mods-available:mysqlnd.ini
[email protected]:/etc/php/7.4/cli/conf.d# pico /usr/share/php7.4-mysql/mysql/mysqlnd.ini

buka file /etc/php/7.4/mods-available/mysqlnd.ini kemdian saya copas isi /usr/share/php7.4-mysql/mysql/mysqlnd.in

; configuration for php mysql module
; priority=10
extension=mysqlnd.so

save dan restart apache nya.

semoga bermanfaat 🙂

referensi:

https://stackoverflow.com/questions/39204990/php-startup-unable-to-load-dynamic-library-usr-lib-php-20151012-php-mysqli-dll