出于某种原因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)。