wamp在win7-64位下Unable to load dynamic library php_c

wamp在win7-64位下Unable to load dynamic library php_curl.dll
网上很多资料都类似这个:
PHP在Windows下启动时提示Unable to load dynamic library php_curl.dll问题解决
作者:朦朧中的罪惡 发布于:2012-3-2 5:01 Friday 分类:疑难杂症
这个问题容易手配PHP的时候出现, 在php.ini中正确开启了curl扩展后, 在PHPINFO中却看不到相关的信息, 而Apache的日志会显示以下错误:
PHP Warning:  PHP Startup: Unable to load dynamic library ‘D:\\DEV\\ENV\\php-5.3.10\\ext\\php_curl.dll‘ - \xd5\xd2\xb2\xbb\xb5\xbd\xd6\xb8\xb6\xa8\xb5\xc4\xc4\xa3\xbf\xe9\xa1\xa3\r\n in Unknown on line 0
什么原因造成的这个问题呢?
答案是curl扩展对库文件有依赖, 就像在Linux下面编译PHP的时候也需要安装依赖的库一样.
在PHP官网手册的Windows下安装扩展库的页面上已经详细的标注了PHP所有的扩展文件依赖那些库. 其中特别提示了以下内容

有些扩展库需要额外的 DLL 才能工作。其中一部分包括在发行包里,PHP 4 中在 C:\php\dlls\目录下,PHP 5 中在主目录下,但还有一些,例如 Oracle( php_oci8.dll)所需要的 DLL 没有绑定在发行包里。如果安装 PHP 4,将绑定的 DLL 从 C:\php\dlls拷贝到主目录 C:\php中。别忘了将 C:\php放到系统路径 PATH中去
 
在页面的介绍中,我们可以查询到curl扩展依赖libeay32.dll, ssleay32.dll这两个库文件, 这两个文件已经附属在PHP的Windows程序包中,我们无需去单独下载. 搞清楚了这些, 解决方法也很简单了: 让Windows或者Apache能顺利加载到这个2个dll文件即可, 下面我列出几个解决方案
方案1 将libeay32.dll, ssleay32.dll拷贝到c:\windows\system32文件夹中
方案2 将你PHP程序的目录加入到系统的PATH变量中即可
方案3 如果你使用的是Apache服务器且使用模块的方式来运行PHP的话, 可以在httpd.conf中加载PHP模块的配置语句之前加上下面两句话让Apache来加载这两个dll, 例子如下:
LoadFile "D:\DEV\ENV\php-5.3.10\ssleay32.dll"
LoadFile "D:\DEV\ENV\php-5.3.10\libeay32.dll"
LoadModule php5_module "D:\DEV\ENV\php-5.3.10\php5apache2_2.dll"
但经过测试,并不可行,继续查找,发现问题还是归结为64位系统下的特殊问题
本人是win7 64位系统,在使用 wamp开启curl扩展时候失败,
 
apache日志中显示
 
<b>Warning</b>: PHP Startup: Unable to load dynamic library ‘d:/wamp/bin/php/php5.3.13/ext/php_curl.dll‘ - 应用程序无法启动,因为应用程序的并行配置不正确。有关详细信息,请参阅应用程序事件日志,或使用命令行 sxstrace.exe 工具。
 
 
libeay32.dll, ssleay32.dll都已经做过了拷贝到c:\windows\system32文件夹中的处理
 
问题依旧,
 
查看了win7的事件查看器 有如下提示
“d:\wamp\bin\php\php5.3.13\ext\php_curl.dll”的激活上下文生成失败。 找不到从属程序集 Microsoft.VC90.DebugCRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"。 请使用 sxstrace.exe 进行详细诊断。
 
 
从国外的网站上查到了如下的解决方法
Re: Wamp Server 2.2 Windows 7 64-bit and curl not working side-by-side configuration incorrect
Posted by: chytons (41.71.136.---)
Date: July 04, 2012 05:38PM
 
Go to [www.anindya.com] download *php_curl-5.4.3-VC9-x64.zip* under "Fixed curl extensions:" and replace the php_curl.dll in ext folder. This worked for me.
 
原文
 
 
访问http://www.anindya.com/php-5-4-3-and-php-5-3-13-x64-64-bit-for-windows/ 找到下载
 
php_curl-5.4.3-VC9-x64.zip (注意:根据你的php版本下载相应的库)的链接;结果悲剧发生了,下载链接被墙了
 
辗转香港服务器最终下载得到该文件
 
http://205.196.120.154/ewohl2d3ccqg/qwgdzgccthzwc15/php_curl-5.3.13-VC9-x64.zip
 
 
替换之前的 php_curl。dll之后重启apache,搞定了

摘录自:http://www.csdn.cc/post/2013-03-24/40048287302

wamp在win7-64位下Unable to load dynamic library php_c

上一篇:C# 密封类使用sealed修饰


下一篇:winform button设计(一)