PHP添加动态扩展库php_curl.dll

PHP在没有支持扩展库php_curl.dll时经常会收到php抛出的如下错误:
Call to undefined function curl_init()
Call to undefined function curl_exec()
……
PHP无法加载支持动态库php_curl.dll问题解决

关于curl函数?
curl是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传, 上载文件断点续传, http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。Windows操作系统下的网络蚂蚁,网际快车(FlashGet)的功能它都可以做到。准确的说,curl支持文件的上传和下载,所以是一个综合传输工具,但是按照传统,用户习惯称curl为下载工具。

问题描述:apache可以正常启动,但是在apache的日志文件中出现错误

PHP Warning:  PHP Startup: Unable to load dynamic library 'D:\php\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


即PHP无法加载动态库php_curl.dll

在php.info中也没有显示curl函数

网上现在有两种解决方法:
方法1、将这PHP目录中的两个库文件ssleay32.dll、libeay32.dll拷贝到windows\system32下。

方法2、在httpd.conf中设置

LoadFile “D:/php/ssleay32.dll”
LoadFile “D:/php/libeay32.dll”


重启服务器即可。

原因:php_curl.dll的加载依赖这两个文件:ssleay32.dll和libeay32.dll。

补充说明:如果你安上述的操作之后没有效果,你查看自己的php程序是否为5.2.14版本,该版本curl 函数有问题
php官网上也曾有网友提问,得到回复:
Please try again using the binaries at http://windows.php.net/releases/ (官方在 2010-Jul-27 10:45:47 更新了包)。

看来也有人遇到了这样的问题,如:

I experienced the same problem with the binaries released on the 22nd of july (build date : 2010-07-21). A workaround was to add the zlib library (version 1.2.3) into the system path or into the PHP directory (with filename zlib.dll, not zlib1.dll).

The binaries at http://windows.php.net/releases/ (build date : 2010-07-27) work like expected, without any zlib.dll related error.


下载27号的新包即可。新包更新了 php_curl.dll 文件的bug。

相关文章

此处评论已关闭