Maison  >  Article  >  développement back-end  >  Que dois-je faire si php ne peut pas charger la bibliothèque dynamique ?

Que dois-je faire si php ne peut pas charger la bibliothèque dynamique ?

藏色散人
藏色散人original
2020-07-23 11:02:313905parcourir

Solution au problème selon lequel PHP ne peut pas charger la bibliothèque dynamique : 1. Copiez "libmySQL.dll" dans le package d'intégration PHP dans le répertoire system32 2. Ajoutez le répertoire de décompression PHP dans PATH ; Le fichier de configuration utilise loadfile pour charger certaines bibliothèques de liens dynamiques.

Que dois-je faire si php ne peut pas charger la bibliothèque dynamique ?

php n'a pas réussi à charger la bibliothèque dynamique

Le package d'intégration de PHP est livré avec de nombreuses bibliothèques de liens dynamiques, mais quand nous Après avoir configuré selon les instructions, j'ai exécuté phpinfo() et j'ai constaté que de nombreux modèles n'étaient pas chargés. Bien que nous ayons supprimé le commentaire (;) devant la bibliothèque de liens correspondante dans php.ini.

J'ai découvert une chose très intéressante lors de la configuration de WAMP : parfois le module mysql peut être chargé, et parfois il ne peut pas être chargé. Après une étude approfondie, j'ai découvert que lorsque mysql peut être chargé, il utilise des fichiers d'installation, et lorsqu'il ne peut pas être chargé, mysql utilise principalement des packages compressés. Quelle est la différence entre les deux villes ?

La différence est que lors de l'installation du package d'installation, vous pouvez choisir d'ajouter le répertoire d'installation mysql (./MySQL*.*/bin) au PATH.

Quel effet cela aura-t-il ? Il s'avère qu'il existe un fichier dans ce répertoire portant le même nom que le package d'intégration PHP - libmySQL.dll.

Une recherche en ligne a révélé qu'il existe d'autres solutions :

Copiez libmySQL.dll dans le package d'intégration PHP dans le répertoire system32 - ce répertoire se trouve généralement dans le PATH

 ; Il existe une autre méthode qui ne nécessite pas de modifier PATH, qui consiste à ajouter une phrase au fichier de configuration Apache : [loadfile X:/*/libmySQL.dll] utilise un chemin absolu.

La racine du problème semble avoir été trouvée. D'autres modules peuvent-ils également le résoudre de cette manière ?

La réponse est oui, vous le pouvez.

Le moyen le plus simple est d'ajouter le répertoire de décompression PHP (incluant généralement libmysql.dll, php.exe, etc.) à PATH

Ensuite, redémarrez le système - le simple redémarrage d'Apache ne fonctionnera pas ; , lorsque vous vérifiez le paramètre PATH de "Apache Environment" dans phpinfo(), vous constaterez que l'élément "PATH" n'a pas changé du tout. Si vous pouvez changer d'application sans redémarrer le système, je ne sais pas encore. . Qui sait, dites-le-moi s'il vous plaît.

Une autre façon d'éviter de modifier PATH et de redémarrer le système consiste à utiliser loadfile dans le fichier de configuration Apache pour charger certaines bibliothèques de liens dynamiques.

Après tests, j'ai listé les modules que je connais et les bibliothèques de liens dynamiques à charger :

  PHP模块      运行时要加载的动态链接库
  ------------------------------------------------------------
  php_fdf.dll                ->fdftk.dll
  php_interbase.dll      ->gds32.dll
  php_pdo_firebird.dll ->gds32.dll
  php_curl.dll               ->ssleay32.dll
  php_ldap.dll             ->ssleay32.dll
  php_openssl.dll        ->ssleay32.dll
  php_mcrypt.dll         ->libmcrypt.dll
  php_mhash.dll         ->libmhash.dll
  php_msql.dll           ->msql.dll
  php_mssql.dll           ->ntwdblib.dll
  php_pdo_mssql.dll   ->ntwdblib.dll
  php_mysql.dll           ->libmysql.dll
  php_mysqli.dll          ->libmysql.dll
  php_pdo_mysql.dll   ->libmysql.dll

Les bibliothèques de liens dynamiques à charger se trouvent toutes dans le répertoire de décompression des packages intégrés de PHP ( Incluant généralement libmysql.dll, php.exe, etc.). Il y a trois fichiers dans ce répertoire : fribidi.dll, libeay32.dll et libswish-e.dll. Je ne sais pas encore à quoi ils servent. Quant au nom et à la fonction de chaque module, je n'entrerai pas dans les détails.

Recommandé : "Tutoriel PHP"

Remarque : Cette méthode convient aux séries php5.1.X, php5.2.X, php.4X n'a ​​pas été testé.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn