I have ubuntu 14.04 EC2 instance. I have installed php 7 on it. when I execute any php command like php --version or any other. I get following error
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/php_mysqli.dll' - /usr/lib/php/20151012/php_mysqli.dll: cannot open shared object file: No such file or directory in Unknown on line 0
I have tried following
- enable php_mysqli.dll in php.ini
- enable mysqli.so
- enable php_mysqli.so
- sudo apt-get install php-mysql
but nothing worked for me.
Any suggestion how I can solve this?
If you are on Linux, you shouldn't have DLL files but SO files. So first, you have to remove / disable the php_mysqli.dll you added in php.ini.
In order to use mysqli, you should then :
apt-get install php-mysql
phpinfo()
for example)/etc/php/mods-available/
folder if there is amysqli.ini
, containingextension=mysqli.so
, then check for CLI / FPM / Apache / other if there is the symbolic link pointing to this file (for example for CLI, in/etc/php/cli/conf.d/
:20-mysqli.ini -> ../../mods-available/mysqli.ini
)In my case it happened because i uncommented the
extension=php_mysqli.dll
line in php.ini file for running some other package. After googling around i found that you should not uncomment anything directly from php.ini instead you should install the required php extension and it will do the rest.In
php.ini
underDynamic Extensions
the lineextension=php_mysqli.dll
was enabled.I disabled it by adding a semi-colon at the head of the line
;extension=php_mysqli.dll
.Saved and exited
php.ini
. RestartedApache
.This resolved the error for me.
I have recently encountered this problem on ubuntu16.04, I finally resolve it by adding a semi-colon at each line like
extension=php_*.dll
,I think that is because LAMP on ubuntu is intelligent enough,it automatically opens all of the extensions for us. And on windows,we have to enable the extensions manually by remove the semi-colon at each line like;extension=php_*.dll
inphp.ini
.Just comment out all lines with .dll extensions because you are on Ubuntu. Ubuntu support .so files.
Run
Phpinfo()
Search for yourphp.ini
pathsearch
extension=php_mysqli.so
comment like this