Wamp是一款运行于windows下的apache,mysql,php集成安装环境,使用起来很方法,支持简体中文,更新配置只需要简单的点点鼠标即可,本人一直使用它来测试代码,但是最近在测试curl的时候出现了问题,curl在浏览器中执行没有问题,但是在command-line[命令行模式]下执行则提示无法加载php_curl函数库。
本人安装的版本:wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-x64.exe
初级解决办法:
1、下载 php_curl-5.4.3-VC9-x64.zip
点我下载2、解压文件,并将php_curl.dll复制到c:\windows\system32目录,同时还需要复制的文件有libeay32.dll、ssleay32.dll、php5ts.dll
3、更改php.ini并去掉extension=php_curl.dll前面的'#';
4、重启apache服务,即可在浏览器端执行php_curl。
以上方法,经过我的测试确实可以解决在浏览器端执行的问题,但是如果我写一exp,调用curl来提交数据包,同时在command-line(命令行)下执行则还是会提示找不到curl函数库,网上还有人说是64位的系统要解压到C:\Windows\SysWOW64目录,我测试了,依然还是上面的问题。
终极解决办法:
经过我多次测试,最终我发现,win7 64下,即使用了64位的php_curl依然还是有问题,只能安装32位的(wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-32b.exe)
点我下载安装好以后,打开php_curl扩展即可。请注意你的php.ini文件是否正确,你可以通过如下命令来找到正确的配置文件。
php -r phpinfo();|
find
/i
"php.ini"
Configuration File (php.ini) Path => C:\Windows
Loaded Configuration File => E:\wamp\bin\php\php5.3.13\php.ini
以下则是我个人实验的结果:
我将上述的方法从头到尾一步步试了一个遍,结果发现curl扩展仍是不能使用,此时我的配置情况是这样的:wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-32b.exe;
1:d:\wamp\bin\php\php5.3.13\php.ini
文件中extension=php_curl.dll行首的分号“;”已经删掉;
2:下载了新的php_curl-5.4.3-VC9-x64.zip替换掉了之前的d:\wamp\bin\php\php5.3.13\
ext\中的php.curl.dll文件;
3:复制了php_curl.dll和libeay32.dll、ssleay32.dll、php5ts.dll到c:\windows\system32目录下;
以上步骤都试过之后还是不行;然后当我打开phpinfo()文件时,我发现了:
于是乎问题来了,到底要改d:\wamp\bin\php\php5.3.13\php.ini
还是d:\wamp\bin\apache\apache2.2.22\bin\php.ini
呢,之前的没效果,我试试去改apache目录下的(把extension=php_curl.dll行首的分号“;”删掉),结果还是不行;我又把php_curl.dll文件还原为之前的;再重启apache结果成功了!!
我就想到到底是哪一个文件再起作用,于是我把复制到c:\windows\system32目录下四个文件都删掉了,再重启apache,依然可以;
结论:
没那么麻烦,只要两步:
1,版本:wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-32b.exe修改apache目录下的php.ini文件就可以了。
2,版本:wampserver2.2e-php5.3.13-httpd2.2.22-mysql5.5.24-x64.exe除了修改配置文件php.ini外还要下载新的php_curl.dll替换原有的。