По какой-то причине расширение pecl_http не отображается в моем файле test.php, содержащем:
<?php phpinfo(); ?>
Я только что установил pecl_http, используя:
pecl установить pecl_http
Установка прошла успешно, и я проверил ее, запустив:
список pecl
Installed packages, channel pecl.php.net:
=========================================
Package Version State
mongo 1.2.10 stable
pecl_http 1.7.4 stable
Затем я нашел свой файл php.ini, используя:
php -i | grep 'Файл конфигурации'
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
Я отредактировал его в vim и добавил:
extension = http.so
Наконец я перезапустил Nginx и PHP-FastCGI:
/etc/init.d/nginx restart
/etc/init.d/php-fastcgi stop
/etc/init.d/php-fastcgi start
Мой каталог_расширения PHP:
/ usr / lib / php5 / 20090626
Я убедился, что http.so находится в этом каталоге.
Есть идеи, почему он не загружается?
На моей машине установлен 64-битный профиль Ubuntu 10.04 LTS на Linode. Единственные другие расширения, которые я установил, - это New Relic и Mongo.
Спасибо!
Для всех, кто, возможно, прибыл сюда в поисках ответа, но принятый не подходил для вашего случая - у меня может быть ваше решение!
У меня не было проблем с настройкой - по крайней мере, насколько мне известно. Я использую nginx + php5-fpm. Мой файл php.ini был правильно настроен, и все мои другие расширения работали правильно - проверьте его с помощью phpinfo () или php --ini.
Моя проблема с 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 и моего веб-сервера (nginx) все заработало безупречно!
ДОПОЛНИТЕЛЬНАЯ ПОМОЩЬ:
Перед установкой - и груша установлена - вы можете запустить эти две команды, предполагая, что вы используете php.ini в fpm, - или вы можете написать путь в соответствии с вашей конфигурацией: pear config-set php_ini / etc / php5 / fpm /php.ini набор конфигурации pecl php_ini /etc/php5/fpm/php.ini
Благодаря этому pecl знает, какой файл php.ini вы используете на своем веб-сервере, и добавит extension = http.so в нужное место. Это помогло мне, так что, возможно, это поможет и вам!
Посмотрите на ваши пути к файлам php ini:
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
CLI - это интерфейс командной строки. Проверьте phpinfo () на своем веб-сервере и отредактируйте правильный php.ini.
Когда я установил один пакет из AUR:
pecl_http
и раскомментирую расширение PHP pecl_http:
extension = http.so
в файле:
/etc/php/conf.d/http.ini
Из этой команды:
php test.php
Я получил:
Предупреждение PHP: невозможно загрузить модуль http, потому что требуемый модуль iconv не загружен в Unknown в строке 0
Удаление комментария:
extension = iconv.so
в файле:
/etc/php/php.ini
решил проблему.
Дистрибутив Linux: Manjaro (на основе Arch Linux).