安装了Amazon Linux pecl_http但没有提供function

我已经使用Amazon Linux php54-pecl-http Yum软件包安装了PHPpecl_http扩展。

  • php -i显示加载的http.ini文件
  • http.iniextension=http.so
  • php -m显示安装的HTTP模块
  • pecl list显示安装的pecl_http 2.0.0beta1

但是,当我试图使用它的任何函数 – new HttpRequest()http_build_url()等等 – 他们回来不存在。 我正在CLI上运行所有的东西(这是一个实用程序服务器),所以在环境之间不可能有不同的php.ini文件。

php -i的http块状态:

 http HTTP Support => enabled Extension Version => 2.0.0beta1 Used Library => Compiled => Linked libz => 1.2.5 => 1.2.5 libcurl => 7.24.0 => 7.24.0 libevent => 1.4 or greater => 2.0.18-stable libserf => disabled => disabled Persistent Handles Provider => Ident => Used => Free http_client.curl => N/A => 0 => 0 http_client_pool.curl => N/A => 0 => 0 http_client_datashare.curl => N/A => 0 => 0 Directive => Local Value => Master Value http.etag.mode => crc32b => crc32b http.persistent_handle.limit => -1 => -1 

有没有人经历过这个? 有任何想法吗?

也许有点晚,但也许这有助于别人登陆这里…

确保您引用了pecl_http API的正确版本。 他们在v2中移动到命名空间,所以调用约定是完全不同的。 networking上的许多文档引用了v1中的方法。

http://devel-m6w6.rhcloud.com/mdref/http

请尝试

strace -fF -o /tmp/wtf php your_php_script.php

然后用你select的文本编辑器/查看器/ grep变体通过/tmp/wtf文件来查看1)正确的php.ini被读取,2)如果http.so扩展名被实际加载。