Compilando extensiones PEC compartidas con phpize
A menudo no es posible utilizar el instalador pecl
.
Esto se puede deber a que se encuentra tras un cortafuegos, o a que
la extensión que trata de instalar no está disponible como paquete compatible
con PECL, como por ejemplo extensiones no liberadas desde el SVN. Si necesita
construir una extensión de este tipo, puede llevar a cabo esta tarea manualmente
utilizando las herramientas de construcción de bajo nivel.
El comando phpize
se utiliza para preparar el entorno
de compilación de la extensión de PHP. En el siguiente ejemplo, el fuente de una extensión
se ubica en un directorio llamado extname:
$ cd extname
$ phpize
$ ./configure
$ make
# make install
En caso de que la instalación sea correcta, se creará extname.so
y se salvará en el directorio de extensiones
de PHP. Quizá necesite ajustar el fichero php.ini y añadir una línea
extension=extname.so
antes de poder usar la extensión.
Si el sistema no contiene el comando phpize
, y se están utilizando
paquetes pre-compilados (como RPM), asegúrese de instalar también la
versión de desarrollo apropiada del paquete PHP, dado que a menudo incluyen
el comando phpize
con los ficheros de cabeceras necesarios
para construir PHP y sus extensiones.
Ejecute phpize --help para mostrar información de uso adicional.
Brian ¶17 years ago
If you have multiple PHP versions installed, you may be able to specify for which installation you'd like to build by using the --with-php-config option during configuration.--with-php-config=[Insert path to proper php-config here]For example (my case):./configure --with-php-config=/usr/local/php5/bin/php-config5
admin at eexit dot net ¶13 years ago
When compiling an extension for a stack which is 64 bits (for example) and your compiler is configured to compile in 32 bits, you can manually compile your extensions using C flags before your configure.Example: my system compiler is 32 bits and my stack is 64 bits. To compile my xdebug:# phpize# CFLAGS=-m64 CPPFLAGS=-m64 CCASFLAGS=-m64 ./configure --enable-xdebug# gmake# file modules/xdebug.somodules/xdebug.so: ELF 64-bit LSB dynamic lib AMD64 Version 1, dynamically linked, not stripped, no debugging information available