Amazon Linux pecl_http 已安装但未提供功能

Amazon Linux pecl_http 已安装但未提供功能

pecl_http我已经使用 Amazon Linux Yum 包安装了 PHP 的扩展php54-pecl-http

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

但是,当我尝试使用它的任何功能(new HttpRequest()、等)时,它们会返回为不存在。我在 CLI 上运行所有内容(这是一个实用程序服务器),因此环境之间http_build_url()不存在不同的文件。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

有人遇到过这种情况吗?有什么想法吗?

答案1

可能有点晚了,但也许这可以帮助其他人到达这里......

确保您引用了正确版本的 pecl_http API。它们在 v2 中移至命名空间,因此调用约定完全不同。网络上的许多文档都引用了 v1 中的方法。

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

答案2

请尝试

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

然后使用您选择的文本编辑器/查看器/grep 变体梳理/tmp/wtf文件以查看 1) 是否读取了正确的 php.ini 和 2) 是否实际加载了 http.so 扩展。

相关内容