PHP启动:无法加载dynamic库,Windows,Apache 2.2,PHP 5.2.11

这成为一个非常令人沮丧的问题。 我正在尝试干净的安装apache 2.2和PHP 5.2.11。 一切似乎configuration正确,但PHP模块没有启动…

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 

在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/" 

所有的文件都在那里… .dll文件,如ssleay32.dll,libmcrypt.dll,libmysql.dll,libeay32.dll都安装在…

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

我也将它们包含在C:\ Windows \ System32中

甚至将C:/ Program Files(x86)/ Apache Software Foundation / Apache2.2 / php /添加到windowspath中。

我不知道为什么这不起作用,感觉就像一个不成功的情况。 任何人有任何想法如何让这一切工作正常?

Solutions Collecting From Web of "PHP启动:无法加载dynamic库,Windows,Apache 2.2,PHP 5.2.11"

尝试这个:

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

没有开始的.;

只为了我未来的自我,如果没有别的。 这是在IIS 8上运行在Windows上的PHP 5.2.13。

我有以下错误:

PHP警告:PHP启动:无法加载动态库“C:\ Program Files文件(x86)\ PHP \ ext \ php_openssl.dll” – 指定的模块找不到。

phpinfo()加载的php.ini文件是C:\Program Files (x86)\PHP\php.ini

扩展名目录:

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

这些是php.ini文件的最后两行:

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

php_openssl.dllphp_sqlsrv_52_nts_vc6.dll文件位于ext目录中。 php_openssl.dll没有损坏(与其他机器上的文件大小相同)。

PHP会找到sqlsrv dll,但不是openssl dll。 不知道为什么。 没有任何IIS重新启动的数量。

直到我知道更好的解决方案是使用Windows PHP安装程序安装openssl.dll扩展。 您可以重新运行安装程序并选择“更改”,并允许您添加或删除库。 我现在看不到文件或php.ini文件有什么区别,但现在文件加载了。

我怀疑实际上我的问题与Windows上有关OpenSSL安装的评论类似:

此时,当您启动Apache时,它将尝试加载php_openssl.dll,但如果您的设置与我的类似,您将看到一个错误。 我更喜欢手动启动Apache,并在对话框中出现错误:“序号4114不能位于动态链接库LIBEAY32.dll”。 (如果您启动Apache作为服务,我不确定是否会收到此消息)。 Apache日志还包含一条错误消息,说php_openssl.dll不能被加载,虽然该消息不会命名libeay32.dll。 欢迎来到DLL地狱。

Libeay32.dll进入图片,因为php_openssl.dll依赖于它(也在ssleay32.dll)。 我想到的是,Apache首先尝试从extension_dir键指定的路径以编程方式加载php_openssl.dll。 但是,所谓的依赖DLL的加载留给了Windows的默认机制。 如果Windows发现依赖DLL的不兼容版本,则会出现错误。

当我尝试从命令行运行php -i时,我注意到有关ssleay32.dll错误。 我只是假定它没有在环境中。 IIS没有提及其日志中的任何ssleay32.dll错误。

您只需在php.ini中取消注释extension_dir

在这里输入图像说明