Heim > Artikel > Backend-Entwicklung > Was soll ich tun, wenn PHP die dynamische Bibliothek nicht laden kann?
Lösung für das Problem, dass PHP die dynamische Bibliothek nicht laden kann: 1. Kopieren Sie „libmySQL.dll“ im PHP-Integrationspaket in das System32-Verzeichnis. 2. Fügen Sie das PHP-Dekomprimierungsverzeichnis zu PATH hinzu Die Konfigurationsdatei verwendet Loadfile, um einige dynamische Linkbibliotheken zu laden.
php konnte die dynamische Bibliothek nicht laden
Das PHP-Integrationspaket enthält viele dynamische Linkbibliotheken, aber wann Nach der Konfiguration gemäß den Anweisungen habe ich phpinfo() ausgeführt und festgestellt, dass viele Vorlagen nicht geladen wurden. Allerdings haben wir den Kommentar (;) vor der entsprechenden Linkbibliothek in php.ini entfernt.
Ich habe beim Konfigurieren von WAMP eine sehr interessante Sache entdeckt: Manchmal kann das MySQL-Modul geladen werden, manchmal kann es nicht geladen werden. Nach sorgfältiger Untersuchung habe ich festgestellt, dass MySQL, wenn es geladen werden kann, Installationsdateien verwendet, und wenn es nicht geladen werden kann, verwendet MySQL hauptsächlich komprimierte Pakete. Was ist der Unterschied zwischen den beiden Städten?
Der Unterschied besteht darin, dass Sie während der Installation des Installationspakets wählen können, ob Sie das MySQL-Installationsverzeichnis (./MySQL*.*/bin) zum PATH hinzufügen möchten.
Welche Auswirkungen wird das haben? Es stellt sich heraus, dass sich in diesem Verzeichnis eine Datei mit demselben Namen wie das PHP-Integrationspaket befindet – libmySQL.dll.
Eine Online-Suche hat ergeben, dass es andere Lösungen gibt:
Kopieren Sie libmySQL.dll im PHP-Integrationspaket in das Verzeichnis system32 – dieses Verzeichnis befindet sich normalerweise im PATH; ist eine weitere Möglichkeit, bei der PATH nicht geändert werden muss, nämlich das Hinzufügen eines Satzes zur Apache-Konfigurationsdatei: [loadfile X:/*/libmySQL.dll] verwendet einen absoluten Pfad.
Die Wurzel des Problems scheint gefunden zu sein. Können andere Module es auch auf diese Weise lösen?
Die Antwort lautet: Ja, das können Sie.
Der einfachste Weg besteht darin, das PHP-Dekomprimierungsverzeichnis (normalerweise einschließlich libmysql.dll, php.exe usw.) zum PATH hinzuzufügen.
Dann starten Sie das System neu – ein einfacher Neustart von Apache wird nicht funktionieren Wenn Sie den PATH-Parameter von „Apache Environment“ in phpinfo() überprüfen, werden Sie feststellen, dass sich das Element „PATH“ überhaupt nicht geändert hat, ohne das System neu zu starten . Wer weiß, bitte sagen Sie es mir.
Eine weitere Möglichkeit, eine Änderung von PATH und einen Neustart des Systems zu vermeiden, besteht darin, Loadfile in der Apache-Konfigurationsdatei zu verwenden, um einige dynamische Linkbibliotheken zu laden.
Nach dem Test habe ich die mir bekannten Module und die zu ladenden dynamischen Linkbibliotheken aufgelistet:
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
Die zu ladenden dynamischen Linkbibliotheken befinden sich alle im integrierten Paketdekomprimierungsverzeichnis von PHP ( normalerweise einschließlich libmysql.dll, php.exe usw.). Es gibt auch drei Dateien in diesem Verzeichnis: fribidi.dll, libeay32.dll und libswish-e.dll. Ich weiß noch nicht, wofür sie verwendet werden. Was den Namen und die Funktion der einzelnen Module betrifft, werde ich nicht näher darauf eingehen.
Empfohlen: „
PHP-Tutorial“ Hinweis: Diese Methode ist für die Serien php5.1.X, php5.2.X geeignet, php.4X jedoch nicht getestet.
Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn PHP die dynamische Bibliothek nicht laden kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!