web-dev-qa-db-fra.com

PHP Impossible de charger la bibliothèque dynamique /usr/lib/php/20151012/php_mysqli.dll au démarrage

J'ai Ubuntu 14.04 EC2 instance. J'ai installé php 7 dessus. quand j'exécute une commande php comme php --version ou autre. Je reçois l'erreur suivante

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

J'ai essayé de suivre

  1. activer php_mysqli.dll dans php.ini
  2. activer mysqli.so
  3. activer php_mysqli.so
  4. Sudo apt-get install php-mysql

mais rien n'a fonctionné pour moi.

Toute suggestion comment je peux résoudre ceci?

4
Jass

Si vous êtes sous Linux, vous ne devriez pas avoir les fichiers DLL mais les fichiers SO. Donc, vous devez d’abord enlever/désactiver le php_mysqli.dll que vous avez ajouté dans php.ini.

Pour utiliser mysqli, vous devriez alors: 

  • installez le paquet pour Ubuntu: apt-get install php-mysql
  • vérifier s'il est déjà activé (avec phpinfo() par exemple)
  • s'il n'est pas activé, activez le module - archivez le dossier /etc/php/mods-available/ s'il existe un mysqli.ini contenant extension=mysqli.so, puis recherchez CLI/FPM/Apache/other s'il existe un lien symbolique pointant vers ce fichier (par exemple pour CLI, dans /etc/php/cli/conf.d/: 20-mysqli.ini -> ../../mods-available/mysqli.ini)
  • redémarrez php/Apache/nginx en fonction de ce que vous utilisez
10
Julqas

J'ai récemment rencontré ce problème sur ubuntu16.04, je l'ai finalement résolu en ajoutant un point-virgule à chaque ligne comme extension=php_*.dll, car je pense que LAMP sur ubuntu est suffisamment intelligent pour ouvrir automatiquement toutes les extensions. Et sur Windows, nous devons activer les extensions manuellement en supprimant le point-virgule à chaque ligne, comme ;extension=php_*.dll dans php.ini

1
skiwer

Dans mon cas, c'est parce que je n'ai pas commenté la ligne extension=php_mysqli.dll du fichier php.ini pour exécuter un autre paquet. Après avoir cherché sur Google, j'ai trouvé que vous ne devriez pas commenter quoi que ce soit directement à partir de php.ini. Vous devriez plutôt installer l'extension PHP requise et faire le reste.

1
Nilkamal Gotarne

Mettez juste en commentaire toutes les lignes avec les extensions .dll car vous êtes sur Ubuntu. Ubuntu supporte les fichiers .so. 

0