Buenas noches a todos, sí, es Viernes y a las 23:00 se me ocurrió instalar una extensión que necesitaba en mi servidor de PHP, concretamente xDebug
Como siempre, intentar instalarlo mediante el gestor de paquetes emerge fue imposible, debido a que tengo el servidor tan personalizado que suelo encontrarme a veces con este tipo de problemas, así que me descargué la última versión de xDebug en su versión src (ficheros fuente) para posteriormente compilarlos de forma manual e instalarlos.
Todo parecía que iba a ser sencillo:
- Comencé descargando la última versión que encontré en la web http://xdebug.org/download.php (a día de hoy es la Xdebug 2.2.3 – http://xdebug.org/files/xdebug-2.2.3.tgz ), y descomprimí la carpeta.
wget http://xdebug.org/files/xdebug-2.2.3.tgz tar -xzf xdebug-2.2.3.tgz
- A continuación , localicé dónde tenía el servicio phpize (locate phpize) y seguidamente ejecuté la siguiente línea que iba a instalar sin problemas mi extensión (también localicé dónde tenía el php-config que tuve que incluirlo en la línea de ejecución ./configure de la librería en cuestión).
/usr/local/php5/bin/phpize && ./configure --enable-xdebug --with-php-config=/usr/local/php5/bin/php-config && make
- Aquí surgió el problema…. a la hora de realizar el make , me encontré con el siguiente error:
libtool: Version mismatch error. This is libtool 2.2.6b, but the libtool: definition of this LT_INIT comes from an older release. libtool: You should recreate aclocal.m4 with macros from libtool 2.2.6b libtool: and run autoconf again. make: *** [xdebug.lo] Error 63
- Después de probar distintas soluciones que encontré googleando, me topé con el siguiente enlace http://www.howtodoityourself.org/2012/05/28/how-to-fix-libtool-version-mismatch-error.html y en él encontré la solución. Borré el fichero aclocal.m4 y ejecuté dos comandos más, de la siguiente forma:
rm aclocal.m4 aclocal autoconf
- Ejecutadas estas sentencias, procedí de nuevo a ejecutar la inicial, obteniendo resultado positivo esta vez:
ksXXXXXX xdebug-2.2.3 # make /bin/sh /root/temp/la/xdebug-2.2.3/libtool --mode=install cp ./xdebug.la /root/temp/la/xdebug-2.2.3/modules libtool: install: cp ./.libs/xdebug.so /root/temp/la/xdebug-2.2.3/modules/xdebug.so libtool: install: cp ./.libs/xdebug.lai /root/temp/la/xdebug-2.2.3/modules/xdebug.la libtool: finish: PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/x86_64-pc-lonfig -n /root/temp/la/xdebug-2.2.3/modules ---------------------------------------------------------------------- Libraries have been installed in: /root/temp/la/xdebug-2.2.3/modules If you ever happen to want to link against installed libraries in a given directory, LIBDIR, you must either use libtool, and specify the full pathname of the library, or use the `-LLIBDIR' flag during linking and do at least one of the following: - add LIBDIR to the `LD_LIBRARY_PATH' environment variable during execution - add LIBDIR to the `LD_RUN_PATH' environment variable during linking - use the `-Wl,-rpath -Wl,LIBDIR' linker flag - have your system administrator add LIBDIR to `/etc/ld.so.conf' See any operating system documentation about shared libraries for more information, such as the ld(1) and ld.so(8) manual pages. ---------------------------------------------------------------------- Build complete. Don't forget to run 'make test'.
- Finalicé realizando un make install
- Y agregué dicho módulo a mi fichero de configuración php.ini de la siguiente forma:
zend_extension=/usr/local/include/xdebug.so
- Reinicié el servicio apache2 y ya tenía mi extensión funcionando (/etc/init.d/apache restart)
Para comprobar que está correctamente instalada y funcionando, podéis crear un fichero info.php con el siguiente contenido
<?php echo phpinfo(); ?>
Lo abrís y en él se puede ver lo siguiente:
Espero que os sirva! 🙂
Buenas noches a todos