2009-11-27 9 views
7

Dies wird zu einem sehr frustrierenden Problem. Ich versuche eine saubere Installation von Apache 2.2 und PHP 5.2.11 zu machen. Alles scheint richtig konfiguriert zu sein, aber die PHP-Module sind nicht an den Start ...PHP Start: Kann nicht laden dynamische Bibliothek, Windows, Apache 2.2, PHP 5.2.11

PHP Warning: PHP Startup: Unable to load dynamic library '.;C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/php_mcrypt.dll' - The specified module could not be found.\r\n in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '.;C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/php_mysql.dll' - The specified module could not be found.\r\n in Unknown on line 0 
PHP Warning: PHP Startup: Unable to load dynamic library '.;C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/php_openssl.dll' - The specified module could not be found.\r\n in Unknown on line 0

in der php.ini

include_path = ".;C:\Program Files (x86)\Apache Software Foundation\Apache2.2\php" 
extension_dir = ".;C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/" 

Alle Dateien gibt es ... die DLL-Dateien wie ssleay32.dll, libmcrypt.dll, libmysql.dll, libeay32.dll sind alle an installiert ...

C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/

I enthielt sie auch im C: \ Windows \ System32

und sogar hinzugefügt C:/Programme (x86)/Apache Software Foundation/Apache2.2/php/zum Windows-Pfad.

Ich habe keine Ahnung, warum das nicht funktioniert und es fühlt sich an wie eine Situation ohne Gewinn. Hat jemand irgendwelche Ideen, wie man das alles in Ordnung bringt?

Antwort

10

Versuchen Sie folgendes:

extension_dir = "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/php/ext/" 

, ohne mit dem .;

+0

Das hat alles wieder funktioniert. jetzt muss ich nur herausfinden, warum OpenSSL und paypalewp auch nach einer Neuinstallation nicht richtig funktionieren ... Danke für die Antwort –

+0

Happy to help! Stellen Sie eine weitere Frage zu Ihren OpenSSL-Problemen, wenn Sie sie nicht lösen können. Vielleicht kann hier jemand helfen. :) –

+0

Vielen Dank es funktioniert wie ein Charme! –

1

Nur für meine Zukunft selbst wenn keiner sonst zu beginnen. Dies ist mit PHP 5.2.13 in Windows auf IIS ausgeführt 8.

ich folgende Fehlermeldung bekam:

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files (x86)\PHP\ext\php_openssl.dll' - The specified module could not be found.

Von phpinfo() die geladene Datei php.ini war C:\Program Files (x86)\PHP\php.ini.

Das Erweiterungsverzeichnis:

extension_dir ="C:\Program Files (x86)\PHP\ext" 

Dies waren die letzten beiden Zeilen der php.ini Datei:

[PHP_SQLSRV] 
extension=php_sqlsrv_52_nts_vc6.dll 
[PHP_OPENSSL] 
extension=php_openssl.dll 

Die php_openssl.dll und php_sqlsrv_52_nts_vc6.dll Dateien sind im ext Verzeichnis. Das php_openssl.dll ist nicht beschädigt (es ist die gleiche Dateigröße wie eins auf einem anderen Computer, der funktioniert).

PHP wird die sqlsrv dll finden, aber nicht die openssl dll. Keine Ahnung warum. Keine Anzahl von IIS-Neustarts hat irgendetwas bewirkt.

Die Lösung, bis ich besser weiß, war die openssl.dll Erweiterung mit dem Windows PHP Installer zu installieren. Sie können das Installationsprogramm erneut ausführen und "Ändern" auswählen, und Sie können Bibliotheken hinzufügen oder entfernen. Ich kann jetzt keinen Unterschied in der Datei oder der php.ini Datei sehen, aber jetzt wird die Datei geladen.

Ich vermute eigentlich, dass mein Problem auf diese comment about OpenSSL installation on Windows ähnlich war:

At this point, when you start Apache it will attempt to load php_openssl.dll, but if your setup is anything like mine you will see an error. I prefer to start Apache manually, and the error appears in a dialog box: "The ordinal 4114 could not be located in the dynamic link library LIBEAY32.dll". (I'm not sure whether you would get this message if you started Apache as a service). The Apache log also contains an error message saying that php_openssl.dll cannot be loaded, though that message doesn't name libeay32.dll. Welcome to DLL Hell.

Libeay32.dll enters the picture because php_openssl.dll depends on it (and also on ssleay32.dll). What I think happens is that Apache first tries to load php_openssl.dll programmatically from the path specified by the extension_dir key. But then, the loading of the so-called dependent DLLs is left to Windows' default mechanism. If Windows finds an incompatible version of a dependent DLL, you get the error.

ich Fehler über ssleay32.dll bemerkt, wenn sie versuchen php -i von der Kommandozeile ausgeführt werden. Ich habe einfach angenommen, dass es in der Umwelt nicht vorhanden ist.IIS erwähnte keine ssleay32.dll Fehler in seinen Protokollen.

+0

Ja! es funktionierte. Ich habe Apache von cmd mit 'x: \ xampp \ apache \ bin \ httpd.exe -d x:/xampp/apache' Befehl ausgeführt, der vom Task-Manager, Spalte' Befehlszeile' kopiert wurde. Es warf Fehler für beide DLLs. Ich musste 'ssleay32.dll' und' libeay32.dll' von php dir nach apache \ bin kopieren. Vielen Dank! –

1

Sie Kommentar- nur die extension_dir in php.ini

enter image description here

0

gleiche Fehler haben, aber stattdessen Dateien zu kopieren php Ordner Systempfad hinzugefügt und den Server angepasst.

Verwandte Themen