Configurar Xdebug
Xdebug es una extensión para depurar tu PHP. Aunque puede utilizar un IDE de su elección, a continuación se explica cómo configurar Xdebug y PhpStorm para depurar en el entorno local.
Para habilitar Xdebug, debe configurar un archivo en el repositorio de Git, configurar el IDE y configurar el reenvío de puertos. Puede configurar algunas opciones en la magento.app.yaml
archivo. Después de editar, inserte los cambios de Git en todos los entornos de Starter y de integración de Pro para habilitar Xdebug. Xdebug ya está disponible en entornos de ensayo y producción Pro.
Una vez configurados, puede depurar los comandos de CLI, las solicitudes web y el código. Recuerde que todos los entornos de infraestructura en la nube son de solo lectura. Clone el código en el entorno de desarrollo local para realizar la depuración. Para los entornos de ensayo y producción de Pro, consulte instrucciones adicionales para Xdebug.
Requisitos
Para ejecutar y utilizar Xdebug, necesita la URL SSH para el entorno. Puede localizar la información a través del Cloud Console o su Cloud Onboarding UI.
Configurar Xdebug
Para configurar Xdebug, siga estos pasos:
Introducción a una rama
Para agregar Xdebug, el Adobe recomienda trabajar en una rama de desarrollo.
Habilitar Xdebug en su entorno
Puede activar Xdebug directamente a todos los entornos de Starter y entornos de integración de Pro. Este paso de configuración no es necesario para los entornos de ensayo y producción de Pro. Consulte Depurar para ensayo y producción profesionales.
Para habilitar Xdebug para el proyecto, añada xdebug
a la runtime:extensions
de la sección .magento.app.yaml
archivo.
Para habilitar Xdebug:
-
En su terminal local, abra el
.magento.app.yaml
en un editor de texto. -
En el
runtime
sección, enextensions
, agreguexdebug
. Por ejemplo:code language-yaml runtime: extensions: - redis - xsl - newrelic - sodium - xdebug
-
Guarde los cambios en
.magento.app.yaml
y salga del editor de texto. -
Agregue, confirme e inserte los cambios para volver a implementar el entorno.
code language-bash git add -A
code language-bash git commit -m "Add xdebug"
code language-bash git push origin <environment-ID>
Cuando se implementa en entornos Starter y entornos de integración Pro, Xdebug ya está disponible. Continúe configurando el IDE. Para PhpStorm, consulte Configurar PhpStorm.
Configurar PhpStorm
El PhpStorm El IDE debe configurarse para que funcione correctamente con Xdebug.
Para configurar PhpStorm para que funcione con Xdebug:
-
En el proyecto PhpStorm, abra el Configuración panel.
- macOS—Seleccionar PhpStorm > Preferencias.
- Windows/Linux—Seleccionar Archivo > Configuración.
-
En el Configuración , expanda y busque el Idiomas y marcos > PHP > Servidores sección.
-
Haga clic en + para agregar una configuración de servidor. El nombre del proyecto aparece en gris en la parte superior.
-
[Opcional] Configure las siguientes opciones para la nueva configuración del servidor. Consulte No hay ningún servidor de depuración configurado en el PHPStorm documentación.
- Nombre: introduzca el mismo que el nombre de host. Este valor debe coincidir con el valor de
PHP_IDE_CONFIG
variable en Depurar comandos CLI para utilizar CLI para la depuración. - Host: introduzca el nombre de host.
- Puerto: Entrar
443
. - Depurador—Seleccionar
Xdebug
.
- Nombre: introduzca el mismo que el nombre de host. Este valor debe coincidir con el valor de
-
Seleccionar Usar asignaciones de ruta. En el Archivo/Directorio panel, la raíz del proyecto para el
serverName
muestra. -
En el Ruta absoluta en el servidor Haga clic en la columna Editar y añada una configuración basada en el entorno.
-
Para todos los entornos de Starter y entornos de integración Pro, la ruta remota es
/app
. -
Para entornos de ensayo y producción Pro:
- Producción:
/app/<project_code>/
- Ensayo:
/app/<project_code>_stg/
- Producción:
-
-
Cambie el Xdebug puerto 9000 en el Idiomas y marcos > PHP > Depurar > Xdebug > Puerto de depuración panel.
-
Clic Aplicar.
Configuración del reenvío de puertos
Asignar el XDEBUG
del servidor al sistema local. Para realizar cualquier tipo de depuración, debe reenviar el puerto 9000 desde el servidor de Adobe Commerce en la nube a su equipo local. Consulte una de las siguientes secciones:
Reenvío de puertos en Mac o UNIX®
Para configurar el reenvío de puertos en un entorno Mac o UNIX®:
-
Abra un terminal.
-
Utilice SSH para establecer la conexión.
code language-bash ssh -R 9000:localhost:9000 <ssh url>
Utilice el
-v
opción (detallada) para que cuando se conecte un socket al puerto que se está reenviando, se muestre en el terminal.Si se muestra el error "no se puede conectar" o "no se pudo escuchar el puerto en remoto", podría haber otra sesión SSH activa en el servidor que está ocupando el puerto 9000. Si esa conexión no se está utilizando, puede terminarla.
Para solucionar problemas de conexión:
-
Utilice SSH para iniciar sesión en el entorno de integración, ensayo o producción remoto.
-
Ver una lista de sesiones SSH:
who
-
Ver sesiones SSH existentes por usuario. ¡Tenga cuidado de no afectar a un usuario que no sea usted!
- integración: los nombres de usuario son similares a
dd2q5ct7mhgus
- Ensayo: los nombres de usuario son similares a
dd2q5ct7mhgus_stg
- Producción: los nombres de usuario son similares a
dd2q5ct7mhgus
- integración: los nombres de usuario son similares a
-
Para una sesión de usuario anterior a la suya, busque el valor de pseudoterminal (PTS), como
pts/0
. -
Elimine el ID de proceso (PID) correspondiente al valor PTS.
code language-bash ps aux | grep ssh kill <PID>
Respuesta de ejemplo:
code language-terminal dd2q5ct7mhgus 5504 0.0 0.0 82612 3664 ? S 18:45 0:00 sshd: dd2q5ct7mhgus@pts/0
Para finalizar la conexión, introduzca un comando kill con el ID de proceso (PID).
code language-bash kill 3664
Reenvío de puertos en Windows
Para configurar el reenvío de puertos (túnel SSH) en Windows, debe configurar la aplicación de terminal de Windows. En este ejemplo se explica cómo crear un túnel SSH utilizando Masilla. Puede utilizar otras aplicaciones como Cygwin. Para obtener más información sobre otras aplicaciones, consulte la documentación del proveedor proporcionada con esas aplicaciones.
Para configurar un túnel SSH en Windows con Putty:
-
Si aún no lo ha hecho, descargue Masilla.
-
Iniciar Masilla.
-
En el panel Categoría, haga clic en Session.
-
Introduzca la siguiente información:
- Nombre de host (o dirección IP) field: introduzca la variable URL SSH para su servidor en la nube
- Puerto campo: Intro
22
-
En el Categoría , haga clic en Conexión > SSH > Túneles.
-
Introduzca la siguiente información:
- Puerto de origen campo: Intro
9000
- Destino campo: Intro
127.0.0.1:9000
- Clic Remoto
- Puerto de origen campo: Intro
-
Clic Añadir.
-
En el Categoría , haga clic en Session.
-
En el Sesiones guardadas , introduzca un nombre para este túnel SSH.
-
Clic Guardar.
-
Para probar el túnel SSH, haga clic en Cargar, luego haga clic en Abrir.
Si aparece el error "no se puede conectar", compruebe lo siguiente:
- Todos los ajustes de Masilla son correctos
- Está ejecutando Putty en el equipo en el que se encuentran las claves SSH de su Adobe Commerce privado en la infraestructura de la nube
Acceso SSH a entornos Xdebug
Para iniciar la depuración, realizar la configuración y mucho más, necesita los comandos SSH para acceder a los entornos. Puede obtener esta información a través del Cloud Console y la hoja de cálculo del proyecto.
Para entornos Starter y entornos de integración Pro, puede utilizar lo siguiente magento-cloud
Comando CLI para SSH en esos entornos:
magento-cloud environment:ssh --pipe -e <environment-ID>
Para usar Xdebug, SSH para el entorno de la siguiente manera:
ssh -R <xdebug listen port>:<host>:<xdebug listen port> <SSH-URL>
Por ejemplo,
ssh -R 9000:localhost:9000 pwga8A0bhuk7o-mybranch@ssh.us.magentosite.cloud
Depurar para ensayo y producción profesionales
Para usar Xdebug específicamente en el entorno de ensayo y producción de planificación profesional, puede crear un túnel SSH y una sesión web independientes a los que solo tiene acceso. Este uso difiere del acceso habitual, ya que solo proporciona acceso a usted y no a todos los usuarios.
Necesita lo siguiente:
-
Comandos SSH para acceder a los entornos. Puede obtener esta información a través del Cloud Console o su Cloud Onboarding UI.
-
El
xdebug_key
valor establecido al configurar los entornos Staging y Pro.El
xdebug_key
se puede encontrar utilizando SSH para iniciar sesión en el nodo principal y ejecutar:code language-bash cat /etc/platform/*/nginx.conf | grep xdebug.sock | head -n1
Para configurar un túnel SSH en un entorno de ensayo o producción:
-
Abra un terminal.
-
Limpie todas las sesiones SSH de cada nodo web del clúster.
code language-bash ssh USERNAME@CLUSTER.ent.magento.cloud 'rm /run/platform/USERNAME/xdebug.sock'
-
Configure el túnel SSH para Xdebug para cada nodo web del clúster.
code language-bash ssh -R /run/platform/USERNAME/xdebug.sock:localhost:9000 -N USERNAME@CLUSTER.ent.magento.cloud
Para iniciar la depuración mediante la dirección URL del entorno:
-
Habilitar la depuración remota; visite el sitio en el explorador y añada lo siguiente a la dirección URL donde
KEY
es el valor dexdebug_key
.code language-http ?XDEBUG_SESSION_START=KEY
Este paso establece la cookie que envía las solicitudes del explorador al déclencheur Xdebug.
-
Complete la depuración con Xdebug.
-
Cuando esté listo para finalizar la sesión, utilice el siguiente comando para quitar la cookie y finalizar la depuración a través del explorador donde
KEY
es el valor dexdebug_key
.code language-http ?XDEBUG_SESSION_STOP=KEY
note note NOTE El XDEBUG_SESSION_START
pasado porPOST
no se admiten solicitudes de.
Depurar comandos CLI
En esta sección se explican los comandos de CLI de depuración.
Para depurar comandos CLI:
-
SSH en el servidor que desea depurar mediante comandos CLI.
-
Cree las siguientes variables de entorno:
code language-bash export XDEBUG_CONFIG='PHPSTORM'
code language-bash export PHP_IDE_CONFIG="serverName=<name of the server that is configured in PHPSTORM>"
Estas variables se eliminan cuando finaliza la sesión SSH.
-
Comenzar depuración
En entornos Starter y entornos de integración Pro, ejecute el comando CLI para depurar.
Puede añadir opciones de tiempo de ejecución, por ejemplo:code language-bash php -d xdebug.profiler_enable=On -d xdebug.max_nesting_level=9999 bin/magento cache:clean
En los entornos de ensayo y producción de Pro, debe especificar la ruta al Xdebug Archivo de configuración de PHP al depurar comandos CLI, por ejemplo:
code language-bash php -c /etc/platform/USERNAME/php.xdebug.ini bin/magento cache:clean
Depuración de solicitudes web
Los siguientes pasos le ayudan a depurar solicitudes web.
-
En el Extensión , haga clic en Depurar para habilitar.
-
Haga clic con el botón secundario, seleccione el menú de opciones y establezca la tecla IDE en PHPSTORM.
-
Instale el Xdebug cliente en el explorador. Configúrelo y actívelo.
Ejemplo: Configuración de Chrome
En esta sección se explica cómo utilizar Xdebug en Chrome con el complemento Xdebug Extensión del ayudante. Para obtener información acerca de Xdebug herramientas para otros exploradores, consulte la documentación del explorador.
Para utilizar Xdebug Helper con Chrome:
-
Crear un Túnel SSH al servidor de Cloud.
-
Instale el Extensión de ayuda de Xdebug de la tienda de Chrome.
-
Habilite la extensión en Chrome como se muestra en la siguiente ilustración.
-
En Chrome, haga clic con el botón derecho en el icono de ayuda verde en la barra de herramientas de Chrome.
-
En el menú emergente, haga clic en Opciones.
-
Desde el Clave IDE , haga clic en PhpStorm.
-
Clic Guardar.
-
Abra el proyecto PhpStorm.
-
En la barra de navegación superior, haga clic en Empezar a escuchar icono.
Si no aparece la barra de navegación, haga clic en Ver > Barra de navegación.
-
En el panel de navegación de PhpStorm, haga doble clic en el archivo PHP que desea probar.
Depuración del código local
Debido a los entornos de solo lectura, debe extraer el código de la estación de trabajo local desde un entorno o rama Git específica para realizar la depuración.
El método que elija depende de usted. Tiene las siguientes opciones:
-
Compruebe el código de Git y ejecute
composer install
Este método funciona a menos que
composer.json
hace referencia a paquetes de repositorios privados a los que no tiene acceso. Este método resulta en obtener toda la base de código de Adobe Commerce. -
Copie el
vendor
,app
,pub
,lib
, ysetup
directoriosEste método hace que tenga todo el código que pueda probar. Según el número de recursos estáticos que tenga, podría resultar en una transferencia larga con un gran volumen de archivos.
-
Copie el
vendor
solo directorioDebido a que la mayor parte del código se encuentra en
vendor
, es probable que este método dé como resultado buenas pruebas, aunque no están probando todo el código base.
Para comprimir archivos y copiarlos en el equipo local:
-
Utilice SSH para iniciar sesión en el entorno remoto.
-
Comprima los archivos.
code language-bash tar -czf /tmp/<file-name>.tgz <directory list>
Por ejemplo, para comprimir
vendor
solo directorio:code language-bash tar -czf /tmp/vendor.tgz vendor
-
En su entorno local, utilice PhpStorm para comprimir los archivos.
code language-bash cd <phpstorm project root dir>
code language-bash rsync <SSH-URL>:/tmp/<file-name>.tgz .
code language-bash tar xzf <file-name>.tgz