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:

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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'.
  6. Finalicé realizando un make install
  7. Y agregué dicho módulo a mi fichero de configuración php.ini de la siguiente forma:
    zend_extension=/usr/local/include/xdebug.so
  8. 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:

xdebugactivo

Espero que os sirva! 🙂

Buenas noches a todos