pecl_http扩展未加载

出于某种原因pecl_http扩展名不显示在我的test.php文件中包含:

<?php phpinfo(); ?> 

我刚刚安装pecl_http使用:

pecl安装pecl_http

安装成功,我运行validation它:

pecl名单

 Installed packages, channel pecl.php.net: ========================================= Package Version State mongo 1.2.10 stable pecl_http 1.7.4 stable 

然后我find我的php.ini文件使用:

php -i | grep'configuration文件'

 Configuration File (php.ini) Path => /etc/php5/cli Loaded Configuration File => /etc/php5/cli/php.ini 

我在vim中编辑它,并添加:

延长= http.so

最后我重新启动了Nginx和PHP-FastCGI:

 /etc/init.d/nginx restart /etc/init.d/php-fastcgi stop /etc/init.d/php-fastcgi start 

我的PHP extension_dir是:

/ usr / lib中/ PHP5 / 20090626

我证实“http.so”位于该目录中。

任何想法,为什么不加载?

我的机器在Linode上运行Ubuntu 10.04 LTS 64位configuration文件。 我唯一安装的其他扩展是New Relic和Mongo。

谢谢!

看看你的phpini文件path:

 Configuration File (php.ini) Path => /etc/php5/cli Loaded Configuration File => /etc/php5/cli/php.ini 

CLI是命令行界面。 从你的web服务器检查phpinfo()并编辑正确的php.ini。

对于任何可能到达这里寻找答案的人,但接受的答案不适合你的情况 – 我可能会有你的解决scheme!

我没有安装问题 – 至less不是我所知。 我正在运行nginx + php5-fpm。 我的php.ini文件configuration正确,我的所有其他扩展都正常工作 – 使用phpinfo()或php –ini进行testing。

我的问题pecl_http(HttpRequest)是扩展的版本(2.0.4)。 通过在命令行中运行来检查您的版本

 pecl list 

我无法得到pecl_http-2.0.4的工作,但我能够运行

pecl uninstall pecl_http

然后

pecl install pecl_http-1.7.6 。 确保你已经安装了libcurl,否则你可能会遇到安装失败的情况。

重新启动php5-fpm和我的networking服务器(nginx)后,一切正常工作!


额外的帮助:

在你安装之前 – 安装pear – 你可能想运行这两个命令,假设你使用的是fpm中的php.ini,或者你可以根据你的configuration写出path:pear config-set php_ini / etc / php5 / fpm /php.ini pecl config-set php_ini /etc/php5/fpm/php.ini

这使得pecl知道你的web服务器正在使用哪个php.ini文件,并将扩展名= http.so添加到正确的位置。 这帮助了我,所以也许它也会帮助你!

当我从AUR安装一个包时:

pecl_http

我取消注释pecl_http PHP扩展:

延长= http.so

在文件中:

/etc/php/conf.d/http.ini

从这个命令:

php test.php

我有:

PHP警告:无法加载模块'http',因为所需模块'iconv'未被加载到未知的第0行

删除评论:

延长= iconv.so

在文件中:

/etc/php/php.ini

解决了这个问题。

Linux发行版:Manjaro(基于Arch Linux)。