You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu18.04下sury.org源php5.6-http扩展无法实例化http\Client

问题原因

你遇到的报错Failed to locate "(null)" client request handler是PHP的pecl_http扩展(即你安装的php5.6-http包)未找到可用的底层请求处理客户端导致的:
对应PHP5.6的pecl_http 2.x版本默认依赖标准的libcurl3作为请求处理器,而Ubuntu 18.04默认预装的是libcurl4,你当前系统中仅安装了libcurl3-gnutls和libcurl4,gnutls分支的libcurl不被pecl_http默认识别,因此实例化http\Client时找不到可用的handler抛出异常。

解决方法

方案一:替换libcurl版本(兼容pecl_http原生功能)

  • 先卸载冲突的libcurl4及相关PHP扩展:
    sudo apt remove libcurl4 php5.6-http php5.6-curl
    
    注意:卸载libcurl4前请确认当前系统中没有强制依赖libcurl4的业务软件,避免影响其他服务运行。
  • 安装兼容的libcurl3及对应PHP扩展:
    sudo apt install libcurl3 php5.6-curl php5.6-http
    
  • 验证curl handler是否被正常识别:
    php -r "var_dump(http\Client::availableHandlers());"
    
    输出结果中包含curl即表示配置生效,此时再运行你的测试代码即可正常实例化http\Client。

方案二:更换HTTP客户端(不改动系统curl版本)

如果无法卸载libcurl4,可以放弃使用pecl_http提供的http\Client,改用PHP原生curl扩展,或者直接使用用户态HTTP客户端库实现请求功能,不需要调整系统依赖。

内容的提问来源于stack exchange,提问作者Tibor Nagy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 16:42:00