web-dev-qa-db-fra.com

PHP Attention: PHP Démarrage: impossible de charger la bibliothèque dynamique

Je lance un script PHP et j'obtiens cette erreur:

Avertissement PHP: PHP Démarrage: impossible de charger la bibliothèque dynamique '/usr/local/lib/php/extensions/no-debug-non-zts-20090626/ixed.5.2.lin' -/usr/local/lib /php/extensions/no-debug-non-zts-20090626/ixed.5.2.lin: impossible d'ouvrir le fichier d'objet partagé: aucun fichier ou répertoire de ce type dans Unknown sur la ligne 0

Qu'est-ce que ça veut dire?

74
Popolo

Cela signifie qu'il y a une ligne extension=... ou zend_extension=... dans l'un de vos fichiers de configuration php (php.ini, ou un autre fichier proche de celui-ci) qui tente de charger cette extension: ixed.5.2.lin

Malheureusement, ce fichier ou chemin n'existe pas ou les autorisations sont incorrectes.

  1. Essayez de rechercher dans les fichiers .ini chargés par PHP (phpinfo() peut indiquer ceux qui le sont). L’un d’entre eux devrait essayer de charger cette extension.
  2. Corrigez le chemin d'accès au fichier ou commentez la ligne correspondante.
44
Pascal MARTIN

Si vous êtes sous Linux, vous pouvez trouver tous les fichiers de configuration chargés en tapant ceci dans Shell:

php -r "print phpinfo();" | grep ".ini"

UPDATE: Comme mentionné dans les commentaires, cela peut être encore plus précis:

php -i | grep ini
33
nefski

Si vous voulez juste faire disparaître l'erreur et que vous n'avez pas besoin de l'extension, alors commentez certainement la ligne dans php.ini. Mais si vous voulez réellement résoudre le problème, voici quelques informations supplémentaires.

Cela dépend du module exact, mais il existe également des directives générales.

  1. Ouvrez phpinfo() et recherchez extension_dir dans la section Core. C'est ici que vos modules devraient être situés.

Par exemple, /usr/lib/php/modules pour Unix/Linux.

  1. Si le fichier existe, assurez-vous que les autorisations sont adéquates.
  2. Si le fichier n'existe pas, utilisez les ressources ci-dessous pour l'installer.

Installation sur * nix (PEAR)
Installation des extensions sous Windows

13
EternalHour

phpStom avec XAMPP  

TL; DR Hormis pour vérifier que les fichiers existent, vous devrez peut-être ajouter la lettre de lecteur à certains enregistrements de votre fichier php.ini

J'ai soudainement commencé à avoir un problème d'utilisation de phpStorm 7 pour le débogage de php avec xampp et xdebug. En essayant de définir intellij interperter sur xampps php, j'ai eu beaucoup d'avertissements comme celui de la question, par exemple: 

Impossible de charger la bibliothèque dynamique '/xampp/php/ext/php_bz2.dll'

Pour une raison quelconque, j'ai dû ajouter ma lettre de lecteur aux enregistrements d'extension_dir et browscap dans le fichier php.ini:

extension_dir = "\xampp\php\ext"
browscap = "\xampp\php\extras\browscap.ini"

à 

extension_dir = "e:\xampp\php\ext"
browscap = "e:\xampp\php\extras\browscap.ini"
9
Technotronic

Notez que vous pouvez également obtenir cette erreur si votre bibliothèque PHP ne dispose pas de l'autorisation "autre" pour ouvrir un répertoire. Dans mon cas particulier, je l’ai remarqué lors de l’utilisation de php -l pour vérifier la syntaxe d’un script dans mon éditeur de texte. Cela signifiait que, puisque mon compte s'appelait «volomike», ce compte n'était pas autorisé à exécuter les bibliothèques sur lesquelles s'appuyait la commande php.

Par exemple, sur Ubuntu 14.04, PHP5 était installé automatiquement dans le chemin /usr/lib/php5/20121212+lfs. Cependant, comme je travaillais en C++ pour créer des objets partagés, j'ai manipulé les autorisations de répertoire et j'ai tout gâché de sorte que les comptes non root ne disposent pas des autorisations d'exécution de répertoire (répertoire ouvert) pour afficher /usr/lib/php5/20121212+lfs. J'ai donc tapé la commande suivante pour rectifier ce problème:

Sudo chmod o+x /usr/lib/php5/20121212+lfs.

Maintenant, lorsque je fais php -l example.php en tant qu'utilisateur non root, le problème "Impossible de charger la bibliothèque dynamique" ne me est plus jamais attribué.

3
Volomike

Chargement du fichier .dll sous Linux

J'ai rencontré ce message d'avertissement lorsque j'essayais d'installer un fichierphp-extensionvia le fichierphp.ini;

jusqu'à ce que je sache que vous ne pouvez pas charger.dllextensions dans Linux, 

mais vous devez commenter les extensions que vous souhaitez importer ;extension= ... .dll et l'installer correctement via Sudo apt-get install php-...

note: ... est le nom de l'extension que vous souhaitez activer.

2
Marco D.G.

J'ai eu le même problème sur XAMPP pour Windows lorsque j'essayais d'installer composer .J'ai fait php -v et une erreur de projection php:

Impossible de charger la bibliothèque dynamique '/xampp/php/ext/php_bz2.dll'

Il m'a fallu un certain temps avant de réaliser que je devais configurer mon XAMPP. Donc, je lance setup_xampp.bat et php return to fonctionne comme un charme.

2
Prima Putra

Après Windows 10 XAMPP, j'ai installé LAMPP (XAMPP) sur Ubuntu. Windows XAMPP avait beaucoup moins de choses à configurer que MAC (iOS), mais maintenant, avec Linux Ubuntu, j'en avais un peu plus car il y en a plus dans Linux (une bonne chose).

J'ai confondu et activé mysqli.dll (et mysql.dll: effacez "#" dans /etc/php/7.2/cli/php.ini

J'ai commencé à recevoir le message PHP Warning: PHP Startup: Unable to load dynamic library relatif à dll. J'ai commenté mysql(and i).dll dans le même fichier, mais le message n'a pas disparu tant que je n'ai pas commenté "" dans /opt/lampp/etc/php.ini.

On dirait que XAMPP lit le fichier php.ini à partir de /etc/php/7.2/cli et effectue les modifications dans php.ini sur /opt/lampp/etc. (; extension = php_pdo_mysql.dll après ";" redémarré Apache et plus aucun message.

1
Mehmet F Erten

J'ai eu cette erreur sur un certain nombre de modules alors que j'utilisais différentes versions de PHP côte à côte sur mon serveur. Pour résoudre ce problème, j’avais besoin d’installer les paquets qu’il ne trouvait pas pour cette version spécifique PHP. Donc, par exemple, si je voyais: -

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/20160303/xml.so'

Je voudrais installer la bibliothèque pour la version PHP = spécifiquement: -

Sudo apt-get install php7.1-xml

Et puis redémarrez Apache. Corrigé pour moi. Vous pouvez vérifier votre version comme ceci: -

php -v
0
Rod

J'ai rencontré une erreur similaire. L'erreur que j'ai faite est d'utiliser le nom du "contrôleur" comme "Pages" au lieu de "pages" dans mon URL. 

0
Ninad Kulkarni