php - Ubuntu pecl install pecl_http fail
(6)
Estoy intentando instalar esta extensión pero falla en la fase de configuración. Estoy en Ubuntu 12.04 y acabo de instalar estos paquetes:
- libcurl3-openssl-dev
- php-http
- libpcre3-dev
- libcurl3
- php-pera
- php5-dev
Versión de 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
Aquí está el registro del comando de instalación:
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
Parece que es un problema con pecl / raphf así que lo intenté:
sudo pecl install raphf
pecl/raphf is already installed and is the same as the released version 1.0.4
install failed
Al final del archivo php.ini ubicado en /etc/php5/apache2/php.ini agregué la línea:
extension=raphf.so
extension=propro.so
extension=http.so
¿Hay algo más que pueda probar?
En Ubuntu 12.04.5 LTS esto funcionó para mí:
Primero instale algunos requisitos previos necesarios para la compilación:
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
después de eso vaya a la carpeta /usr/lib/php5/modules
y compruebe si las bibliotecas están allí: raphf.so
, propro.so
y http.so
Si su php.ini
(en /etc/php5/apache2/php.ini
y /etc/php5/cli/php.ini
) no contiene estas extensiones, agréguelas:
extension=http.so
extension=propro.so
extension=raphf.so
o usando la ruta de acceso absoluta a los archivos, por ejemplo, extension=/usr/lib/php5/modules/http.so
Y como último paso reinicie su servidor web, cargando así la nueva configuración:
sudo service apache2 reload
Me topé con este problema al intentar instalar pecl_http-2.6.0, raphf-1.1.2 y propro-1.0.2 en Ubuntu 16.04 y php-fpm5.6. No puedo usar apt
para instalar raphf y propro (como sugirió @mschuett) porque apt
solo puede instalar raphf 2.0.0 y propro 2.1.0 que solo funciona para PHP 7.
Resuelvo el problema con los siguientes pasos sin necesidad de actualizar el php.ini ni usar apt
.
En primer lugar, para que php-fpm cargue una nueva extensión, se debe agregar un archivo .ini a /etc/php/5.6/mods-available
. Luego usa phpenmod
para habilitar la extensión.
Así que para instalar y habilitar raphf-1.1.2,
$ pecl install raphf-1.1.2
$ echo "extension=raphf.so" >> /etc/php/5.6/mods-available
$ phpenmod raphf
Tenga en cuenta que puede necesitar sudo
para estos comandos.
Del mismo modo, para propro-1.0.2.
$ pecl install raphf-1.0.2
$ echo "extension=raphf.so" >> /etc/php/5.6/mods-available
$ phpenmod raphf
Si usa php -m
para ver todas las extensiones cargadas, debería ver raphf y propro en la lista.
Ahora puedes instalar pecl_http-2.6.0 con
$ pecl install pecl_http-2.6.0
La instalación debe completarse con éxito.
$ 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
Si está utilizando pecl
como yo, es posible que vea advertencias como:
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
lo que sucede porque la configuración php_ini
de mi pear
y pecl
no están establecidas.
Necesitas instalar php-raphf desde tu administrador de paquetes.
Para mi instalé el módulo usando lo siguiente. En su caso, debería poder cambiar yum por apt-get.
sudo yum install php-raphf
sudo yum install php-propro
sudo pecl install pecl_http
Deberá agregar extension = http.so a su archivo php.ini. Pero parece que ya lo has hecho.
pecl no instala realmente el archivo .so que está buscando.
Si tiene ubuntu 13 o 14, intente pecl install pecl_http-1.7.6
ya que las versiones más recientes aún no se cargan por algún motivo.
Solo para agregar a la respuesta de @ mschuett, descubrí que cuando recibí el mismo error que el OP, el hecho de cambiar la referencia de mi extensión en php.ini hizo el truco.
extension=raphf.so
a
extension=/usr/lib/php5/20121212/raphf.so
entonces
sudo pecl install pecl_http
Además, configurar lo siguiente evitará que tengas que editar manualmente el archivo php.ini cuando una instalación de pecl quiera modificarlo:
pear config-set php_ini /etc/php5/apache2/php.ini
pecl config-set php_ini /etc/php5/apache2/php.ini
NOTA: Esto funcionó para Ubuntu 14.04 LTS.
ejecutar comando
sudo yum instalar php-raphf
- sudo yum instalar php-propro
sudo pecl install pecl_http
etc / phph5 / apache2 / conf.d
agregar dos archivos
- raphf.ini
agregar contenido
extensión = raphf.so
solr.ini
agregar contenido
extensión = raphf.so
agregar en el archivo php.ini
extensión = http.so extensión = propro.so extensión = raphf.so o extensión = / usr / lib / php5 / 20121212 / raphf.so extensión = solr.so