Windows Server2019下PHP7.4开启curl扩展仍报curl_init()未定义错误如何解决
故障排查与解决步骤
- 第一步:确认你修改的是Apache加载的正确php.ini文件
打开phpinfo页面,找到Loaded Configuration File对应的路径,只有修改这个路径下的php.ini才会生效,不少用户会误改PHP CLI对应的ini文件导致配置不生效。 - 第二步:校验extension_dir配置是否正确
检查php.ini里的extension_dir参数,必须填写php_curl.dll所在ext目录的绝对路径,例如:
不要使用相对路径,Apache加载时相对路径容易出现解析错误。extension_dir = "C:/php7.4/ext" - 第三步:确认文件版本匹配与依赖完整
- 你使用的php_curl.dll必须和PHP的版本、线程安全属性、系统架构(x86/x64)完全一致,不要使用其他版本PHP的dll文件
- 检查PHP根目录下是否存在curl依赖的
libcurl.dll、libssh2.dll、nghttp2.dll等文件,PHP7.4版本需要安装VC15运行库,缺失的话会导致dll加载失败
- 第四步:配置系统环境变量
把PHP根目录的绝对路径添加到Windows系统的PATH环境变量中,添加完成后重启整个服务器,避免环境变量不生效。Apache启动时需要读取PHP根目录下的依赖库,不配置PATH会找不到对应文件。 - 第五步:校验Apache的PHP配置
检查Apache的httpd.conf配置文件,确认PHPIniDir参数指向的是你当前PHP版本的根目录,示例配置:
配置错误会导致Apache读取错误的php.ini文件。PHPIniDir "C:/php7.4" - 进阶排查:查看错误日志定位问题
如果以上步骤都操作后仍然无法加载,可以查看Apache的错误日志,启动服务时如果curl扩展加载失败,日志中会打印明确的报错原因(比如缺失依赖、权限不足、dll版本不匹配等),可以直接定位问题。
内容的提问来源于stack exchange,提问作者John Beasley
相关产品推荐
相关产品推荐

