好不容易通过自己的学习动手写了一套网站自动收录的程序,正当我把源码都传到服务器作演示和大家共享的时候,忽然发现网址无法正常添加,提示错误Fatal error:Call to undefined function curl_init()。我估计应该有人也有类似问题,赶紧百度一下,果然好多人遇到这个问题。
总结下一般方法如下:
1、将PHP安装目录中找libeay32.dll,ssleay32.dll,php_curl.dll,php5ts.dll四个DLL文件,有的在ext目录,找到后将他们复制到system32下,如果找不到请下载对应版本的PHP复制过去;
2、检查php.exe, php5ts.dll和php_curl.dll的版本是否相同,把鼠标放到什么就会显示版本信息;
3、打开你的php.ini文件,不知道在哪个位置的可以先phpinfo查看第六行显示路径,不要搞混了,打开做如下修改:将php_curl前的注释符(也就是分号)去掉。有必要的话将cgi.force_redirect前的注释符也去掉,并把值1修改为0;
4、重启IIS或apache后运行phpinfo检查curl是否成功加载,Ctrl+F查找curl,如果没有匹配,那肯定是没有加载成功,如果有匹配,恭喜你已经成功加载了。
上面也说了那只是一般方法,但是如果你也和我一样按上面四部操作后仍未解决问题,那么请检查你的版本是否为php5.2.14。如果是的话,那恭喜你跟我一样中奖了,因为PHP5.2.14这个版本的curl模块本身就有bug,所以你还得继续操作最后一步:下载PHP5.2.13中的php_curl.dll,并用它替换前四步中出现的php_curl.dll,也就是php安装目录的ext下和systm32目录下都替换掉,然后重启IIS或apache,最后我终于是解决了,相信你应该也解决问题了吧。如果您看到现在还依然未解决,那可能又是另一种情况了,不妨留言一起研究下。
文章最初由小刀发布在http://www.8d8e.cn/webs/2011/37728.html上,转载请注明出处。