【问题标题】:Why am I not able to use PHP pecl_http extension I have compiled and loaded?为什么我无法使用已编译和加载的 PHP pecl_http 扩展?
【发布时间】:2015-12-22 10:20:27
【问题描述】:

我在 Mac OS X 10.9.5 和 PHP 5.6.13 上运行 PHP PECL 扩展 pecl_http (https://pecl.php.net/package/pecl_http) 时遇到了很大的麻烦。

情况如下:我已经编译并加载了 pecl_http 扩展以及依赖关系 raphf 和 propro,但我仍然无法运行扩展中的任何代码。如果我尝试实例化对象或调用函数,我总是会得到“未找到”错误,如下所示:

$  ./php -r "new HttpUrl();"
Fatal error: Class 'HttpUrl' not found in Command line code on line 1

我可以说扩展(http、propro 和 raphf)都已加载,因为如果我尝试在 php.ini 中启用它们(例如,extension=http.so),它会给我一个警告说扩展已经加载。

我尝试了两种方法,但它们似乎都不起作用。

1) 我首先编译了 PHP,然后尝试使用 pecl install http://link_to_extension 安装扩展。它会自动安装依赖项。此方法无效。

2) 我重新编译了 PHP,将 Http pecl 扩展和依赖项静态编译到 PHP src 中,如文档所述 (http://php.net/manual/en/install.pecl.static.php)。

结果,我处于我在开始时描述的情况:加载了扩展,但我无法调用 pecl_http 方法/函数/对象。

【问题讨论】:

  • 通过检查phpinfo()的输出确保包被加载
  • 大家好,感谢您的回答。我可以从 phpinfo() 确认扩展似乎已加载。以下是摘录:http HTTP Support => enabled Extension Version => 2.5.2 Used Library => Compiled => Linked libz => 1.2.8 => 1.2.8 libcurl => 7.44.0 => 7.44.0 libevent = > disabled => disabled Directive => Local Value => Master Value http.etag.mode => crc32b => crc32b 我还尝试使用 extension_loaded() 检查它的运行时,正如 Mike 引用的帖子中所建议的那样,它返回真的。因此,它已加载!真的不知道...
  • 哇!有用!!你能解释一下为什么吗?!谢谢大佬!

标签: php http php-extension pecl


【解决方案1】:

你已经安装了v2 of pecl_http

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-25
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多