Archive for enero, 2012

Instalar uploadprogress en OS X Lion con Zend Server CE

En Mac OS X Leopard es muy fácil instalar la extensión uploadprogress. Basta con ejecutar en la terminal el comando:

sudo pecl install uploadprogress

El problema surge cuando se trata de OS X Lion. Todo parece ir bien hasta que reincidas el apache y el PHP salta con el siguiente error:

PHP Startup: Unable to load dynamic library '/usr/local/zend/lib/php_extensions/uploadprogress.so' - dlopen(/usr/local/zend/lib/php_extensions/uploadprogress.so, 9): no suitable image found. id find: /usr/local/zend/lib/php_extensions/uploadprogress.so: mach-o, but wrong architecture in Unknown on line 0

Si no has configurado la ruta del php.ini en el pcel es buen momento para hacerlo con el comando:

sudo pecl config-set php_ini /usr/local/zend/etc/php.ini

Si ya hemos instalado el uploadprogress lo primero que haremos será desinstalarlo con:

sudo pecl uninstall uploadprogress

Ahora descargamos la última versión de desde http://pecl.php.net/package/uploadprogress (en el momento de escribir este post la versión actual es la 1.0.3.1) y lo descomprimimos.

A continuación desde la terminal nos movemos hasta la carpeta de la extensión:

cd /Users/jordi/Downloads/uploadprogress-1.0.3.1/uploadprogress-1.0.3.1/

Y empezamos tecleando:

phpize

Que nos responderá con algo como:

Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626

Ahora ejecutamos el comando configure tal como muestro a continuación:

MACOSX_DEPLOYMENT_TARGET=10.7 CFLAGS='-O3 -fno-common -arch i386 -arch x86_64' LDFLAGS='-O3 -arch i386 -arch x86_64' CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64' ./configure --with-php-config=/Developer/SDKs/MacOSX10.7.sdk/usr/bin/php-config

Luego:

make

Y luego:

make install

Si no hemos configurado la ruta del php.ini en pecl nos pedirá que agreguemos la extensión a nuestro php.ini añadiendo la siguiente linea:

extension=/usr/lib/php/extensions/no-debug-non-zts-20090626/uploadprogress.so

Reiniciamos el apache y ya tenemos la extensión uploadprogress funcionando.