64位wampserver开启curl扩展失败的问题

时间:2022-10-11 12:48:03

今天在运行程序时报错:

Fatal error:Call to undefined function curl_init()...

在网上查了一下,是因为php_curl.dll扩展没有开启的缘故,于是有了下面的操作:

在win7操作系统中配置好httpd.conf、php.ini后能够成功部署php程序至apache。但是将程序移植到win2008后同样的配置却报Call to undefined function curl_init()错误。google、百度了N久,有以下解决方法:

1.在php.ini中找到extension=php_curl.dll,去掉前面的;

2.在php.ini中找到extension_dir = "ext",去掉前面的;,改为extension_dir
= "d:\php5\ext"。

3、php_curl.dll、libeay32.dll、ssleay32.dll、php5ts.dll都拷到system32下面去~

4、重启apache、重启操作系统!

按照以上方法逐步操作后还是报此错误!

后看到http://blog.guyzyl.com/archives-20100717-16.html的博文,按其方法才得以解决,方法如下:

在配置php扩展的时候,要先看看扩展有没有依赖其它动态链接库(后面有贴依赖情况)。如果有依赖的dll,也不需要拷到system32下面,也不需要把文件位置加到path路径里。在httpd.conf文件中加上:

LoadFile 动态链接库的完整路径

比如,此处php需要扩展curl,因此解决方法就是在httpd.conf文件中加上:

LoadFile d:/php/libeay32.dll

LoadFile d:/php/ssleay32.dll

问题解决。。。

下面是php扩展的依赖关系:

扩展库 说明 注解

php_bz2.dll bzip2 压缩函数库 无

php_calendar.dll 历法转换函数库 自 PHP 4.0.3 起内置

php_cpdf.dll ClibPDF 函数库 无

php_crack.dll 密码破解函数库 无

php_ctype.dll ctype 家族函数库 自 PHP 4.3.0 起内置

php_curl.dll CURL,客户端 URL 库函数库 需要:libeay32.dll,ssleay32.dll(已附带)

php_cybercash.dll 网络现金支付函数库 PHP <= 4.2.0

php_db.dll DBM 函数库 已废弃。用 DBA 替代之(php_dba.dll)

php_dba.dll DBA:数据库(dbm 风格)抽象层函数库 无

php_dbase.dll dBase 函数库 无

php_dbx.dll dbx 函数库

php_domxml.dll DOM XML 函数库 PHP <= 4.2.0 需要:libxml2.dll(已附带),PHP >= 4.3.0 需要:iconv.dll(已附带)

php_dotnet.dll .NET 函数库 PHP <= 4.1.1

php_exif.dll EXIF 函数库 需要 php_mbstring.dll。并且在 php.ini 中,php_exif.dll 必须在 php_mbstring.dll之后加载。

php_fbsql.dll FrontBase 函数库 PHP <= 4.2.0

php_fdf.dll FDF:表单数据格式化函数库 需要:fdftk.dll(已附带)

php_filepro.dll filePro 函数库 只读访问

php_ftp.dll FTP 函数库 自 PHP 4.0.3 起内置

php_gd.dll GD 库图像函数库 在 PHP 4.3.2 中删除。此外注意在 GD1 中不能用真彩色函数,用 php_gd2.dll 替代。

php_gd2.dll GD 库图像函数库 GD2

php_gettext.dll Gettext 函数库 PHP <= 4.2.0 需要 gnu_gettext.dll(已附带),PHP >= 4.2.3 需要 libintl-1.dll,iconv.dll(已附带)。

php_hyperwave.dll HyperWave 函数库 无

php_iconv.dll ICONV 字符集转换 需要:iconv-1.3.dll(已附带),PHP >=4.2.1 需要 iconv.dll

php_ifx.dll Informix 函数库 需要:Informix 库

php_iisfunc.dll IIS 管理函数库 无

php_imap.dll IMAP,POP3 和 NNTP 函数库 无

php_ingres.dll Ingres II 函数库 需要:Ingres II 库

php_interbase.dll InterBase functions 需要:gds32.dll(已附带)

php_java.dll Java 函数库 PHP <= 4.0.6 需要:jvm.dll(已附带)

php_ldap.dll LDAP 函数库 PHP <= 4.2.0 需要 libsasl.dll(已附带),PHP >= 4.3.0 需要 libeay32.dll,ssleay32.dll(已附带)

php_mbstring.dll 多字节字符串函数库 无

php_mcrypt.dll Mcrypt 加密函数库 需要:libmcrypt.dll

php_mhash.dll Mhash 函数库 PHP >= 4.3.0 需要:libmhash.dll(已附带)

php_mime_magic.dll Mimetype 函数库 需要:magic.mime(已附带)

php_ming.dll Ming 函数库(Flash) 无

php_msql.dll mSQL 函数库 需要:msql.dll(已附带)

php_mssql.dll MSSQL 函数库 需要:ntwdblib.dll(已附带)

php_mysql.dll MySQL 函数库 PHP >= 5.0.0 需要 libmysql.dll(已附带)

php_mysqli.dll MySQLi 函数库 PHP >= 5.0.0 需要 libmysql.dll(PHP <= 5.0.2 中是 libmysqli.dll)(已附带)

php_oci8.dll Oracle 8 函数库 需要:Oracle 8.1+ 客户端库

php_openssl.dll OpenSSL 函数库 需要:libeay32.dll(已附带)

php_oracle.dll Oracle 函数库 需要:Oracle 7 客户端库

php_overload.dll 对象重载函数库 自 PHP 4.3.0 起内置

php_pdf.dll PDF 函数库 无

php_pgsql.dll PostgreSQL 函数库 无

php_printer.dll 打印机函数库 无

php_shmop.dll 共享内存函数库 无

php_snmp.dll SNMP 函数库 仅用于 Windows NT!

php_soap.dll SOAP 函数库 PHP >= 5.0.0

php_sockets.dll Socket 函数库 无

php_sybase_ct.dll Sybase 函数库 需要:Sybase 客户端库

php_tidy.dll Tidy 函数库 PHP >= 5.0.0

php_tokenizer.dll Tokenizer 函数库 自 PHP 4.3.0 起内置

php_w32api.dll W32api 函数库 无

php_xmlrpc.dll XML-RPC 函数库 PHP >= 4.2.1 需要 iconv.dll(已附带)

php_xslt.dll XSLT 函数库 PHP <= 4.2.0 需要 sablot.dll,expat.dll(已附带)。PHP >= 4.2.1 需要 sablot.dll,expat.dll,iconv.dll(已附带)。

php_yaz.dll YAZ 函数库 需要:yaz.dll(已附带)

php_zip.dll Zip 文件函数库 只读访问

php_zlib.dll ZLib 压缩函数库 自 PHP 4.3.0 起内置

********************************************************

按照上面的方法处理,依然失败,我专门针对wampserver的crul进行查询,终于找到了解决方案:

下载一个使用VC9编译的php_curl.dll替换掉原来的文件就可以了,注意php版本的对应,注意,这个php_curl-5.3.13-VC9-x64.zip对应的是PHP
5.3.13,若版本不对也会无法加载curl。

运行phpinfo()方法,可以看到curl扩展已经加载。