Назад | Перейти на главную страницу

расширение pecl_http не загружается

По какой-то причине расширение 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).