Ubuntu pecl установить pecl_http не удалось

Я пытаюсь установить это расширение, но оно не работает на этапе настройки. Я на Ubuntu 12.04, и я только что установил эти пакеты:

  • libcurl3-OpenSSL-DEV
  • PHP-клиент
  • libpcre3-DEV
  • libcurl3
  • PHP-груша
  • php5-DEV

Версия PHP:

PHP 5.3.10-1ubuntu3.14 with Suhosin-Patch (cli) (built: Sep  4 2014 07:08:49)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans

Вот журнал команды установки:

sudo pecl install pecl_http
downloading pecl_http-2.1.1.tgz ...
Starting to download pecl_http-2.1.1.tgz (158,441 bytes)
.................................done: 158,441 bytes
64 source files, building
running: phpize
Configuring for:
PHP Api Version:         20090626
Zend Module Api No:      20090626
Zend Extension Api No:   220090626
Enable extended HTTP support [yes] :
where to find zlib [/usr] :
where to find libcurl [/usr] :
where to find libevent [/usr] :
building in /tmp/pear/temp/pear-build-rootqE2kgU/pecl_http-2.1.1
running: /tmp/pear/temp/pecl_http/configure --with-http --with-http-zlib-dir=/usr --with-http-libcurl-dir=/usr --with-http-libevent-dir=/home/gare88/Lib/Php/libevent-2.0.21-stable/
checking for grep that handles long lines and -e... /bin/grep

[... cut...]

checking for zlib.h... found in /usr
checking for zlib version >= 1.2.0.4... 1.2.3.4
checking for curl/curl.h... found in /usr
checking for curl-config... found: /usr/bin/curl-config
checking for curl version >= 7.18.2... 7.22.0
checking for SSL support in libcurl... yes
checking for openssl support in libcurl... no
checking for gnutls support in libcurl... no
checking for ares support in libcurl... no
checking for bundled SSL CA info... /etc/ssl/certs/ca-certificates.crt
checking for event2/event.h... not found
configure: WARNING: continuing without libevent support
checking for ext/raphf support... no
configure: error: Please install pecl/raphf and activate extension=raphf.so in your php.ini
ERROR: `/tmp/pear/temp/pecl_http/configure --with-http --with-http-zlib-dir=/usr --with-http-libcurl-dir=/usr --with-http-libevent-dir=/usr' failed

Кажется, это проблема с PECL / raphf поэтому я попробовал:

sudo pecl install raphf
pecl/raphf is already installed and is the same as the released version 1.0.4
install failed

В конце файл php.ini находится в /etc/php5/apache2/php.ini
Я добавил строку:

extension=raphf.so
extension=propro.so
extension=http.so

Есть ли что-нибудь еще, что я могу попробовать?

16

Решение

Вам нужно установить php-raphf из вашего менеджера пакетов.

для меня я установил модуль, используя следующее. В вашем случае вы должны иметь возможность отключить yum для apt-get.

sudo yum install php-raphf
sudo yum install php-propro
sudo pecl install pecl_http

Вам нужно будет добавить extension = http.so в ваш файл php.ini. Но похоже, что вы уже сделали это.

На самом деле pecl не устанавливает .so файл, который вы ищете.

9

Другие решения

если у вас есть Ubuntu 13 или 14, попробуйте pecl install pecl_http-1.7.6 поскольку новые версии все еще не загружаются по некоторым причинам.

8

На Ubuntu 12.04.5 LTS это работало для меня:

Сначала установите некоторые предварительные условия, необходимые для компиляции:

sudo apt-get install php-http
sudo apt-get install php5-dev
sudo apt-get install libcurl3
sudo apt-get install libpcre3-dev
sudo apt-get install libcurl4-openssl-dev
sudo pecl install raphf
sudo pecl install pecl_http-1.7.6

после этого перейдите в папку /usr/lib/php5/modules и проверьте, есть ли библиотеки: raphf.so, propro.so а также http.so,

Если твой php.ini/etc/php5/apache2/php.ini а также /etc/php5/cli/php.ini) не содержит этих расширений, добавьте их:

extension=http.so
extension=propro.so
extension=raphf.so

или используя абсолютный путь к файлам, например, extension=/usr/lib/php5/modules/http.so,

И в качестве последнего шага перезапустите ваш веб-сервер, загрузив, таким образом, новую конфигурацию:

sudo service apache2 reload
6

Просто чтобы добавить к ответу @ mschuett, я обнаружил, что, когда я получил ту же ошибку, что и OP, изменение ссылки на расширение в php.ini помогло.

extension=raphf.so

в

extension=/usr/lib/php5/20121212/raphf.so

затем

sudo pecl install pecl_http

Кроме того, установка следующих параметров избавит вас от необходимости вручную редактировать файл php.ini, когда установка pecl хочет его изменить:

pear config-set php_ini /etc/php5/apache2/php.ini
pecl config-set php_ini /etc/php5/apache2/php.ini

ПРИМЕЧАНИЕ: это работало для Ubuntu 14.04 LTS.

5

Команда запуска

  1. sudo yum установить php-raphf

    • sudo yum установить php-propro
  2. sudo pecl установить pecl_http

  3. и т.д. / phph5 / apache2 / conf.d

добавить два файла

  • raphf.ini

добавить контент

расширение = raphf.so

solr.ini

добавить контент

расширение = raphf.so

добавить в файл php.ini

расширение = http.so расширение = propro.so
расширение = raphf.so
или же
Расширение = / USR / Библиотека / php5 / 20121212 / raphf.so
расширение = solr.so

0

Я сталкиваюсь с этой проблемой, пытаясь установить pecl_http-2.6.0, raphf-1.1.2 и propro-1.0.2 в Ubuntu 16.04 и php-fpm5.6. Я не могу использовать apt установить raphf и propro (как предложено @mschuett), потому что apt можно установить только raphf 2.0.0 и propro 2.1.0, который работает только для PHP 7.

Я решаю проблему с помощью следующих шагов без необходимости обновления php.ini или использования apt,

Прежде всего, чтобы php-fpm загрузил новое расширение, нужно добавить INI-файл. /etc/php/5.6/mods-available, Тогда используйте phpenmod включить расширение.

Таким образом, чтобы установить и включить raphf-1.1.2,

$ pecl install raphf-1.1.2
$ echo "extension=raphf.so" >> /etc/php/5.6/mods-available
$ phpenmod raphf

Обратите внимание, что вам может понадобиться sudo для этих команд.

Аналогично для пропро-1.0.2

$ pecl install raphf-1.0.2
$ echo "extension=raphf.so" >> /etc/php/5.6/mods-available
$ phpenmod raphf

Если вы используете php -m чтобы просмотреть все загруженные расширения, вы должны увидеть в списке raphf и propro.

Теперь вы можете установить pecl_http-2.6.0 с

$ pecl install pecl_http-2.6.0

Установка должна завершиться успешно.

$ pecl list
Installed packages, channel pecl.php.net:
=========================================
Package   Version State
pecl_http 2.6.0   stable
propro    1.0.2   stable
raphf     1.1.2   stable

Если вы используете pecl как и я, вы можете увидеть предупреждение, такое как:

install ok: channel://pecl.php.net/pecl_http-2.6.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=http.so" to php.ini

что происходит потому, что php_ini конфиг моего pear а также pecl не установлены.

0
По вопросам рекламы [email protected]