Debian

Depuración de aplicaciones PHP de forma remota como un PRO usando Eclipse, XDebug y SSHFS

[ad_1]

¿Cómo llegó a un punto en que necesitaba esto? Bueno, tener una caja Debian dedicada en Frankfurt con unos 50 sitios web que tienden a tener problemas de vez en cuando me llevó a la dolorosa conclusión de que es mejor dejar la depuración usando las declaraciones de eco para las lecciones de la escuela secundaria. Si me quedara sin mi instalación de depuración hoy probablemente me sentiría como intentar codificar un sistema operativo en ensamblaje.

Entonces, ¿cómo se ve un escenario práctico de lo que aprenderá a hacer? Bueno, es algo como esto:

  1. Un sitio en vivo en mi servidor en Frankfurt falla de alguna manera mística.
  2. Me avisan de la falla y enciendo Eclipse inmediatamente.
  3. Disparo la extensión XDebug en el servidor.
  4. Mi instalación de Eclipse ya contiene proyectos preparados y sesiones de depuración, así que simplemente enciendo la apropiada.
  5. Con hasta dos minutos estoy revisando el código del sitio web ofendido y por lo general en unos pocos minutos, el error se aplasta.
  6. Desactive la extensión XDebug y todo vuelve a la normalidad.

Pero no se confunda, esta configuración no es solo para sitios en vivo. Absolutamente lo uso mientras desarrollo aplicaciones PHP. La razón por la que utilicé este ejemplo es para mostrarle el poder absoluto que posee en situaciones críticas y urgentes cuando tiene a ese cliente golpeando en la puerta para hacer que su sitio funcione.

Las instrucciones que aparecen en este artículo están orientadas a Linux por brevedad. Para obtener las instrucciones para Windows, deberá consultar el tutorial original. Un enlace al tutorial original se encuentra en la firma.

Instalación de Eclipse

El primer paso en nuestro viaje es instalar Eclipse IDE con PDT (Herramientas de desarrollo de PHP). Debería poder obtener la última versión de Eclipse PDT para su sistema operativo en la sección de descargas de Eclipse. El procedimiento de instalación en mi caja de Debian fue trivial: descargar, extraer y ejecutar. El único problema con el que me topé fue no poder ejecutar Eclipse con PDT de manera estable con nada que no fuera Sun JRE. Entonces, si obtiene algún error extraño que pueda ser su culpable.

Instalando XDebug

Lo siguiente es agregar la capacidad de depuración a su extensión PHP Apache. En el cuadro de Debian esto resultó ser bastante trivial:

# aptitude install php5-xdebug

Sin embargo, también debe configurar algunas cosas en php.ini:

[xdebug] [19659002] xdebug.remote_enable = 1

xdebug.remote_host = "hostname.dyndns.org"

xdebug.remote_port = 9000

xdebug.remote_handler = "dbgp"

xdebug.remote_log = / tmp / xdebug .log

xdebug.var_display_max_depth = 10

xdebug.var_display_max_data = 10240

xdebug.auto_trace = 1

xdebug.trace_output_dir = / tmp

zend_extension = / usr / lib / php5 / 20060613 + lfs /xdebug.so

The xdebug.remote_host = "hostname.dyndns.org" apunta al escritorio de mi casa, lo que me permite conectarme de forma remota a la sesión xdebug dentro de php desde mi máquina de escritorio. Si no tiene dominio Dyndns para su máquina doméstica, también puede ingresar su IP actual. Puede conocer todas las configuraciones de XDebug en la página de documentación de XDebug. Una vez que instale la extensión XDebug, debe cargar phpinfo () y comprobar si la salida contiene algo como esto cerca de la parte superior:

Este programa hace uso del motor Zend Scripting Language: Zend Engine v2.2.0, Copyright ( c) 1998-2008 Zend Technologies con Xdebug v2.0.3, Copyright (c) 2002-2007, por Derick Rethans

Si lo hace, tiene éxito en la instalación de XDebug. Solo tenemos una cosa más para instalar y es SSHFS.

Instalación de SSHFS

¿Por qué SSHFS? Bueno … mientras depura su sitio remoto, Eclipse necesita tener acceso a sus archivos fuente, ya que es la única forma en que puede guiarlo a través del código mientras se está ejecutando. Ahora, dado que el sitio está en un servidor remoto, puede copiarlo a su máquina o hacerlo de alguna manera para que Eclipse pueda acceder a él a través de Internet. Si copia las fuentes a su máquina, perderá la capacidad de modificar el sitio en ejecución, ya que solo modificará la copia. Entonces, la única opción que podemos aceptar es de alguna manera obtener acceso a las fuentes a través de Internet. Aquí es donde SSHFS viene a jugar. SSHFS le permitirá montar su cuenta ssh remota en su sistema de archivos local y acceder a ella como si estuviera en su propia máquina.

De nuevo, en Linux, resulta ser bastante trivial:

# aptitude install sshfs

Sin embargo, hay una dependencia de sshfs que aptitude no me advirtió. Es un módulo de núcleo fusible. Para comprobar si lo tiene instalado, pruebe lo siguiente:

# lsmod | grep fusible

Debería ver algo como:

fusible 43676 3

Si obtiene algo como esto, tiene el módulo insertado en el kernel y está listo para usar SSHFS para montar su cuenta ssh remota.

Para montar la cuenta ssh debe hacer lo siguiente:

# sshfs vlatko @ xxx.xxx.xxx.xxx:/var/www/ / existing / path / on / the / local / machine / -o gid = 44, uid = 1012, reconectar -p 12345

(no hay espacios alrededor de @)

El vlatko @ xxx.xxx .xxx.xxx : / var / www / (no hay espacios en @) parte debe ser bastante fácil de explicar. El formato es user @ ip: / path / you / want / to / mount. (no hay espacios alrededor de @)

El segundo parámetro es simplemente la ruta en su máquina local en la que desea montar la ruta remota. Esta ruta debe existir y debe ser una carpeta vacía.

El tercer parámetro simplemente especifica el puerto ssh que generalmente se cambia del 22 predeterminado a algo más oscuro en la mayoría de los servidores web.

La parte después de -o en mi case se trata de reasignar el ID de usuario y groupid remotos a ID de usuario y grupo local. Obviamente, desea montarlos en el ID de usuario y grupo del usuario en su máquina local.

Después de que todo esté configurado correctamente y funcionando, debería obtener algo como esto cuando ejecute:

# mount

vlatko @ xxx.xxx.xxx.xxx:/var/www/ en / home / vlatko / mounts / abraham tipo fuse.sshfs (rw, nosuid, nodev, max_read = 65536, usuario = vlatko)

Entonces Una vez que tenga esta configuración, deberá montar la carpeta en la que se encuentra el código fuente de su sitio web en una carpeta de su máquina local. Supongamos que su sitio web está en / var / www / mysite / y montó / var / www / localmente en / home / myself / mounts / myserver /. Por lo tanto, en / home / myself / mounts / myserver / tendrá todos los sitios en su servidor, incluido / var / www / mysite / que se ubicará en su equipo local en /home/myself/mounts/myserver/mysite.[19659002] Usando Eclipse para hacer que todos estos bailen juntos

Una vez que todas las partes necesarias están instaladas y ejecutándose, debemos hacer que funcionen juntas. Puede ser un poco complicado comenzar a correr la primera vez, pero una vez que lo haces no volverás. Lo prometo.

Ejecute su IDE de Eclipse y comience un nuevo proyecto de PHP. (Archivo -> Nuevo -> Proyecto y luego seleccione PHP -> Proyecto PHP. Después de ingresar el nombre, debe seleccionar 'Crear proyecto desde la fuente existente' y seleccionar / home / myself / mounts / myserver / mysite. Después del proyecto construye le queda el último paso.

Creando la configuración de depuración

Las configuraciones de depuración se crean en Ejecutar -> Configuraciones de depuración.

Es necesario hacer clic con el botón derecho en la página PHP y seleccionar Nuevo. Complete el nombre y seleccione XDebug en Server Debugger. Para PHP Server, debe elegir Nuevo e ingresar un nombre y la URL que carga su sitio web. En File, seleccione el archivo que carga su página de inicio, que generalmente es un index.php en la raíz de su sitio web. siempre desmarque 'Romper en primera línea' y 'Generar automáticamente'. Especialmente 'generar automáticamente' tiende a generar URLs que no son correctas, así que después de quitarle la marca también borro la URL que generó para que apunte a la página principal de su sitio web .

Esto debería ser. Presione Debug y debería obtener una depuración p erspective abierto junto con una sesión de depuración en ejecución. Puede alternar puntos de interrupción haciendo doble clic en la línea vertical azul a la izquierda de su código fuente. Normalmente comienzo abriendo el index.php de mi sitio y estableciendo el punto de corte en la primera expresión de la fuente solo para probar si el depurador funciona y luego sigo mi camino desde allí.

Mi tutorial original también contiene un enlace a una pila de LAMP VirtualBox que contiene todo el software necesario preconfigurado y listo para la prueba. Con la pila, todo lo que tiene que hacer es descargarlo e instalarlo, y ya está listo para probar cómo depurar las aplicaciones PHP con XDebug y Eclipse.

[ad_2]

Source by Vlatko Surlan

No Comments Found

Leave a Reply