WAMP升级PHP到7.4.19后出现Call to undefined function curl_init()错误求解决
排查与解决思路
- 首先恢复PHP7.4.19原生cURL扩展文件:你之前将PHP7.2的
php_curl.dll覆盖到7.4版本的操作会导致版本不兼容,跨PHP大版本的扩展dll无法通用。请删除被覆盖的文件,从官方发布的PHP7.4.19 Windows x64 线程安全版压缩包中,提取原生的php_curl.dll放入对应ext目录,确保扩展文件和PHP版本、架构、线程安全属性完全匹配。 - 检查cURL依赖库完整性与加载路径:PHP7.4的cURL扩展依赖
libcurl.dll、libssh2.dll、nghttp2.dll等配套库,这些文件默认存放在PHP7.4.19的根目录。请将上述文件全部复制到Apache的bin目录下,或者确保PHP7.4.19的根目录已添加到系统级PATH(而非用户级PATH),修改后重启WAMP生效。 - 验证扩展目录配置正确性:打开PHP7.4.19对应的php.ini,确认
extension_dir配置为绝对路径,示例:
不要使用相对路径,避免Apache运行时路径解析错误。同时检查extension_dir = "C:/wamp64/bin/php/php7.4.19/ext"php_curl.dll的文件权限,确保Apache运行账户有该文件的读取权限。 - 通过命令行定位具体报错:打开Windows终端,cd到PHP7.4.19的根目录,依次执行以下命令:
- 查看加载的模块列表:
php -m,检查curl是否在列表中 - 查看加载的配置文件路径:
php --ini,确认加载的php.ini和你修改的配置文件一致
若cURL加载失败,终端会直接输出具体错误原因(如依赖缺失、版本不匹配、文件不存在等),可根据报错定向解决。
- 查看加载的模块列表:
- 检查VC运行库版本:PHP7.4要求安装Visual C++ Redistributable for Visual Studio 2017(VC15)x64版本,若系统中缺少对应运行库,会导致扩展无法正常加载,安装对应版本运行库后重启设备即可。
- 确认Apache与PHP版本兼容性:你当前使用的Apache2.4.33版本发布时间较早,若你是自行升级的PHP7.4,需确认PHP目录下的
php7apache2_4.dll与当前Apache版本、架构完全匹配,若mod_php模块不兼容,也会导致扩展加载异常。
内容的提问来源于stack exchange,提问作者Kristián Filo
相关产品推荐
相关产品推荐

