出于某种原因,pecl_http 扩展没有出现在我的 test.php 文件中,其中包含:
<?php phpinfo(); ?>
我刚刚安装了 pecl_http 使用:
pecl 安装 pecl_http
安装成功,我通过运行验证了它:
名单
Installed packages, channel pecl.php.net:
=========================================
Package Version State
mongo 1.2.10 stable
pecl_http 1.7.4 stable
然后我使用以下方法找到了我的 php.ini 文件:
PHP-我 | grep '配置文件'
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 位配置文件。我安装的唯一其他扩展是 New Relic 和 Mongo。
谢谢!
对于可能已经来到这里寻找答案但被接受的人不适合您的情况的任何其他人 - 我可能有您的解决方案!
我没有设置问题 - 至少据我所知没有。我正在运行 nginx + php5-fpm。我的 php.ini 文件已正确配置,我的所有其他扩展都正常工作 - 使用 phpinfo() 或 php --ini 对其进行测试。
我对 pecl_http (HttpRequest) 的问题是扩展的版本 (2.0.4)。通过在命令行中运行来检查您的版本
我无法让 pecl_http-2.0.4 工作,但我能够运行
pecl uninstall pecl_http
然后
pecl install pecl_http-1.7.6
. 确保您也安装了 libcurl,否则您可能会遇到安装失败的情况。重新启动 php5-fpm 和我的网络服务器(nginx)后,一切正常!
额外帮助:
在安装之前 - 并且安装了 pear - 假设您在 fpm 中使用 php.ini,您可能想要运行这两个命令 - 或者您可以根据您的配置编写路径:pear config-set php_ini /etc/php5/fpm /php.ini pecl config-set php_ini /etc/php5/fpm/php.ini
这使得 pecl 知道您在网络服务器上使用的是哪个 php.ini 文件,并将在正确的位置添加 extension=http.so 。这对我有帮助,所以也许它也会对你有帮助!
查看您的 phpini 文件路径:
CLI 是命令行界面。从您的网络服务器检查 phpinfo() 并编辑正确的 php.ini。
当我从 AUR 安装一个包时:
我取消注释 pecl_http PHP 扩展:
在文件中:
从这个命令:
我有:
删除评论:
在文件中:
解决了问题。
Linux 发行版:Manjaro(基于 Arch Linux)。