Windows 10 Pro下PHP cURL突然无法加载,Apache无法加载扩展求助
解决Apache下PHP cURL扩展无法加载的问题
这种情况我踩过好几次坑,核心问题大概率是Apache加载的php.ini和你手动修改的不是同一个文件,咱们一步步排查解决:
先确认Apache使用的php.ini路径
打开你的localhost/phpinfo.php,找到「Loaded Configuration File」这一项,看看它指向的是不是你修改的C:\php7\php.ini?
同时在命令行运行php --ini,对比命令行里的「Loaded Configuration File」路径,你会发现两者大概率不一样——命令行用的是PHP根目录的配置,而Apache可能加载了其他路径的php.ini(比如Apache安装目录下的,或者系统默认路径的)。修改Apache对应的php.ini
找到Apache加载的那个php.ini文件,做以下配置:- 开启cURL扩展:把
;extension=php_curl.dll前面的分号去掉,改成extension=php_curl.dll(PHP7+不需要写全路径,只要ext目录配置正确就行) - 检查扩展目录:确保
extension_dir配置正确,比如extension_dir = "ext"(相对PHP根目录)或者绝对路径extension_dir = "C:\php7\ext",路径错误会导致扩展找不到。
- 开启cURL扩展:把
检查依赖库是否存在
php_curl.dll依赖libeay32.dll和ssleay32.dll这两个文件,命令行能运行是因为PHP根目录里有它们,但Apache可能读取不到:- 可以把PHP根目录下的这两个dll复制到
C:\Windows\System32(64位系统也可以放到C:\Windows\SysWOW64) - 或者把PHP根目录添加到系统环境变量的
PATH里,这样Apache就能找到这些依赖库了。
- 可以把PHP根目录下的这两个dll复制到
务必重启Apache服务
修改完配置后,一定要重启Apache!不重启的话,新的配置根本不会生效,这是很多人容易忽略的点。验证结果
重启Apache后,刷新phpinfo.php,搜索「curl」,如果能看到cURL模块的详细信息,就说明配置成功了,再运行你的curl脚本应该就不会报错了。
内容的提问来源于stack exchange,提问作者anjanesh
相关产品推荐
相关产品推荐

