Maison > Article > développement back-end > Que dois-je faire si php ne peut pas charger la bibliothèque dynamique ?
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.
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!