{"id":16110523,"date":"2024-08-27T14:14:09","date_gmt":"2024-08-27T14:14:09","guid":{"rendered":"https:\/\/wpml.org\/anuncios-es\/2024\/08\/configuracion-de-un-entorno-de-desarrollo-local-de-wordpress-con-docker-xdebug-y-phpstorm\/"},"modified":"2024-08-27T14:55:55","modified_gmt":"2024-08-27T14:55:55","slug":"configuracion-de-un-entorno-de-desarrollo-local-de-wordpress-con-docker-xdebug-y-phpstorm","status":"publish","type":"post","link":"https:\/\/wpml.org\/es\/tutoriales\/2024\/08\/configuracion-de-un-entorno-de-desarrollo-local-de-wordpress-con-docker-xdebug-y-phpstorm\/","title":{"rendered":"Configuraci\u00f3n de un entorno de desarrollo local de WordPress con Docker, Xdebug y PhpStorm"},"content":{"rendered":"\n<p class=\"lead\">Con Docker Compose, Xdebug y PhpStorm, puedes crear un entorno de desarrollo local reproducible, aislado y f\u00e1cilmente gestionable que refleja un servidor de producci\u00f3n, mejorando la calidad de tus proyectos de WordPress.<\/p>\n\n<p>\u00a1Hola, compa\u00f1eros desarrolladores de WordPress y usuarios avanzados!\nHoy, estoy emocionado de compartir un tutorial completo pero sencillo sobre c\u00f3mo configurar un entorno de desarrollo local de WordPress usando Docker Compose.\nHabi\u00e9ndome unido recientemente al din\u00e1mico equipo de <a href=\"https:\/\/onthegosystems.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">OnTheGoSystems<\/a>, decid\u00ed traer mi zona de confort conmigo, que es de lo que trata esta configuraci\u00f3n.  <\/p>\n\n<p>El objetivo era simple: desarrollar una configuraci\u00f3n donde pudiera tener un control granular sobre mis herramientas de desarrollo, integrando Xdebug y WP-CLI con la imagen oficial de Docker de WordPress.\nEsta configuraci\u00f3n no se trata de reinventar la rueda, sino de personalizarla para alinearse con las preferencias y estilos de trabajo individuales.\nEspero que esta gu\u00eda te sea \u00fatil para configurar un entorno similar, mejorando tu viaje en el desarrollo de WordPress.  <\/p>\n\n<h2 class=\"wp-block-heading\">Requisitos previos<\/h2>\n\n<p>Para aprovechar al m\u00e1ximo este tutorial, necesitar\u00e1s tener las siguientes dependencias instaladas:<\/p>\n\n<ol class=\"wp-block-list\">\n<li><a href=\"https:\/\/docs.docker.com\/engine\/install\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Docker<\/strong><\/a>: Usaremos Docker como nuestra herramienta principal para crear, desplegar y ejecutar aplicaciones utilizando contenedores.\nNos permite empaquetar una aplicaci\u00f3n con todas las partes que necesita en un contenedor y enviarla como un solo paquete.\nLo que hace que Docker sea a\u00fan m\u00e1s poderoso es su promesa de control granular, permiti\u00e9ndonos definir cada aspecto de la configuraci\u00f3n de nuestra aplicaci\u00f3n con precisi\u00f3n.\nEste control ayuda a crear un entorno de desarrollo que se adapta exactamente a nuestras necesidades.   <\/li>\n\n\n\n<li><a href=\"https:\/\/chrome.google.com\/webstore\/detail\/xdebug-helper\/eadndfjplgieldjbigjakmdgkmoaaaoc\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Xdebug Chrome Extension<\/strong><\/a>: Esta extensi\u00f3n del navegador nos ayudar\u00e1 a recorrer nuestro c\u00f3digo, detectar errores y mejorar la calidad general de nuestros proyectos de WordPress.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.jetbrains.com\/phpstorm\/download\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>PhpStorm<\/strong><\/a>: Un IDE inteligente y completamente equipado para PHP desarrollado por JetBrains.\nProporciona un editor para PHP, HTML y JavaScript con an\u00e1lisis de c\u00f3digo en tiempo real y refactorizaci\u00f3n automatizada para estos lenguajes. <\/li>\n<\/ol>\n\n<h2 class=\"wp-block-heading\">\u00bfPor qu\u00e9 Docker, Xdebug y PhpStorm?<\/h2>\n\n<p>Nuestro objetivo es establecer un entorno de desarrollo local de WordPress que sea aislado, reproducible y f\u00e1cilmente gestionable.\nDocker forma la columna vertebral de esta configuraci\u00f3n, proporcionando la infraestructura para contener y gestionar nuestra aplicaci\u00f3n.\nXdebug y PhpStorm son las piezas complementarias de este rompecabezas, ofreciendo capacidades mejoradas de desarrollo y depuraci\u00f3n de c\u00f3digo PHP.  <\/p>\n\n<p>Nuestro viaje comenzar\u00e1 con la creaci\u00f3n de un Dockerfile que extiende la imagen oficial de Docker de WordPress.\nMejoraremos esta imagen incorporando Xdebug y WP-CLI, herramientas fundamentales en nuestras tareas de desarrollo y depuraci\u00f3n de WordPress. <\/p>\n\n<p>A continuaci\u00f3n, redactaremos un archivo Docker Compose para orquestar dos servicios clave: WordPress y MySQL.\nY cr\u00e9elo o no, \u00a1eso es esencialmente todo!  <\/p>\n\n<p>La belleza de esta configuraci\u00f3n es que resulta en un entorno de desarrollo local que no solo refleja un servidor de producci\u00f3n, sino que tambi\u00e9n es f\u00e1cilmente replicable.\nEsto significa que podemos duplicar la configuraci\u00f3n exacta en m\u00faltiples entornos o m\u00e1quinas con facilidad, asegurando consistencia y reduciendo problemas relacionados con la configuraci\u00f3n. <\/p>\n\n<h2 class=\"wp-block-heading\">Tutorial paso a paso<\/h2>\n\n<h3 class=\"wp-block-heading\">Paso 1: El Dockerfile<\/h3>\n\n<p>Nuestro viaje comienza con la creaci\u00f3n de un nuevo Dockerfile.\nEste archivo instruye a Docker sobre c\u00f3mo construir nuestra imagen.\nAqu\u00ed est\u00e1 la configuraci\u00f3n b\u00e1sica con la que suelo empezar:  <\/p>\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\n# Use the official WordPress image as a parent image\nFROM wordpress:latest\n\n# Install Xdebug\nRUN pecl install xdebug \n\n# Install WP-CLI\nRUN curl -O https:\/\/raw.githubusercontent.com\/wp-cli\/builds\/gh-pages\/phar\/wp-cli.phar &amp;amp;&amp;amp; \\\n    chmod +x wp-cli.phar &amp;amp;&amp;amp; \\\n    mv wp-cli.phar \/usr\/local\/bin\/wp\n\n# Copy xdebug.ini into the container\nCOPY xdebug.ini \/usr\/local\/etc\/php\/conf.d\/xdebug.ini\n\n<\/pre><\/div>\n<p>En este Dockerfile, partimos de la imagen oficial de WordPress.\nLuego instalamos Xdebug y WP-CLI por separado para mayor claridad y mantenibilidad.\nEl archivo de configuraci\u00f3n de Xdebug (<strong>xdebug.ini<\/strong>) se copia en el directorio apropiado en el contenedor.\nEsto forma la base de mi configuraci\u00f3n habitual para un entorno de desarrollo local de WordPress.   <\/p>\n\n<h3 class=\"wp-block-heading\">Paso 2: El archivo de configuraci\u00f3n de Xdebug (xdebug.ini)<\/h3>\n\n<p>Ahora que tenemos Xdebug instalado en nuestra imagen de Docker, necesitamos configurarlo para que funcione en nuestro entorno de desarrollo local.\nEsto implica crear un archivo <strong>xdebug.ini<\/strong> con los siguientes ajustes: <\/p>\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nini\nzend_extension=xdebug\nxdebug.mode=debug\nxdebug.client_port=9003\nxdebug.start_with_request=yes\n\n<\/pre><\/div>\n<p>Estos ajustes habilitan la extensi\u00f3n Xdebug, la configuran para iniciar la depuraci\u00f3n con cada solicitud y definen el puerto del cliente al que debe conectarse (en este caso, 9003).\nPuede que hayas notado que a\u00fan no hemos especificado un <strong>client_host<\/strong>, pero no temas, entrar\u00e1 en juego muy pronto en nuestro proceso de configuraci\u00f3n. <\/p>\n\n<h3 class=\"wp-block-heading\">Paso 3: El archivo Docker Compose<\/h3>\n\n<p>A continuaci\u00f3n, crearemos un archivo <strong>docker-compose.yml<\/strong> que configurar\u00e1 nuestros servicios de WordPress y MySQL:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nyaml\nversion: &#039;3&#039;\nservices:\n  # MySQL Service\n  mysql:\n    image: mysql:latest\n    container_name: mysql_container\n    restart: always\n    volumes:\n      - db_data:\/var\/lib\/mysql\n    environment:\n      MYSQL_ROOT_PASSWORD: root\n      MYSQL_USER: wordpress\n      MYSQL_PASSWORD: wordpress\n      MYSQL_DATABASE: wordpress\n  \n  # WordPress Service\n  wordpress:\n    depends_on: \n      - mysql\n    image: wordpress:latest\n    container_name: wp_container\n    volumes:\n      - .\/wp_data:\/var\/www\/html\n    environment:\n      WORDPRESS_DB_HOST: mysql\n      WORDPRESS_DB_USER: wordpress\n      WORDPRESS_DB_PASSWORD: wordpress\n      WORDPRESS_DB_NAME: wordpress\n      WORDPRESS_DEBUG: 1\n      XDEBUG_CONFIG: client_host=host.docker.internal\n    ports:\n      - &quot;8000:8000&quot;\n\nvolumes:\n  db_data:\n\n<\/pre><\/div>\n<p>En este archivo, hemos definido dos servicios &#8211; MySQL y WordPress.\nAmbos servicios tienen nombres de contenedor \u00fanicos, para una referencia y gesti\u00f3n m\u00e1s f\u00e1ciles. <\/p>\n\n<p>La directiva <strong>restart: always<\/strong> asegura que el servicio siempre se reiniciar\u00e1 si se detiene inesperadamente.\nSi se detiene manualmente, solo se reinicia cuando el contenedor se reinicia manualmente. <\/p>\n\n<p>El servicio MySQL monta un volumen de Docker (<strong>db_data<\/strong>), asegurando almacenamiento persistente incluso si se elimina el contenedor.\nPara el servicio de WordPress, estamos montando un directorio local (<strong>.\/wp_data<\/strong>) en el contenedor.\nEsto significa que cualquier cambio en los archivos de WordPress en nuestro sistema local se reflejar\u00e1 en el contenedor.  <\/p>\n\n<p>Hemos a\u00f1adido dos variables de entorno adicionales para el servicio de WordPress &#8211; <strong>WORDPRESS_DEBUG<\/strong> para habilitar la depuraci\u00f3n de WordPress y <strong>XDEBUG_CONFIG<\/strong> para especificar el host cliente para Xdebug.\nEl <strong>client_host<\/strong> est\u00e1 configurado en <strong>host.docker.internal<\/strong>, que es un nombre DNS especial que se dirige a la direcci\u00f3n IP interna del host, permitiendo que Xdebug se comunique con nuestro IDE en el host. <\/p>\n\n<p>Tenga en cuenta que la configuraci\u00f3n de <strong>client_host<\/strong> est\u00e1 adaptada para Windows y macOS.\nPara Linux, una alternativa com\u00fan es reemplazar <strong>host.docker.internal<\/strong> con la direcci\u00f3n IP real de su m\u00e1quina, que se puede obtener mediante el comando de terminal <strong>ip addr show<\/strong>. <\/p>\n\n<h3 class=\"wp-block-heading\">Paso 4: Ejecutar su Entorno de Desarrollo Local de WordPress<\/h3>\n\n<p>Una vez que su Dockerfile, archivo de configuraci\u00f3n de Xdebug y archivo Docker Compose est\u00e9n listos, es hora de poner en marcha su entorno de desarrollo local de WordPress. <\/p>\n\n<p>Para hacer esto, simplemente navegue al directorio que contiene su archivo Docker Compose en la terminal y ejecute el siguiente comando:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nbash\ndocker-compose up -d\n<\/pre><\/div>\n<p>Este comando instruir\u00e1 a Docker para que inicie sus servicios en segundo plano.<\/p>\n\n<p>Tras una ejecuci\u00f3n exitosa, tendr\u00e1 un sitio de WordPress ejecut\u00e1ndose en su m\u00e1quina local, accesible a trav\u00e9s de <strong>http:\/\/localhost:8000<\/strong>.\nCualquier cambio que realice en sus archivos PHP de WordPress ahora se reflejar\u00e1 en este sitio, ofreciendo una manera f\u00e1cil y efectiva de desarrollar y depurar su aplicaci\u00f3n de WordPress. <\/p>\n\n<p>Adem\u00e1s, su servicio de MySQL tambi\u00e9n estar\u00e1 en funcionamiento, accesible en el puerto 3306.\nEsto proporciona una base de datos MySQL completamente funcional para su aplicaci\u00f3n de WordPress, replicando un entorno realista para sus necesidades de desarrollo. <\/p>\n\n<h3 class=\"wp-block-heading\">Paso 4.5: Paso Adicional &#8211; A\u00f1adir el Archivo <strong>phpinfo.php<\/strong><\/h3>\n\n<p>Para aquellos que quieran profundizar un poco m\u00e1s en su configuraci\u00f3n de PHP, podemos introducir un archivo <strong>phpinfo.php<\/strong> en nuestra imagen de Docker.\nCuando se accede, este archivo presentar\u00e1 una visi\u00f3n general completa de su configuraci\u00f3n de PHP.<br\/>Para a\u00f1adir el archivo <strong>phpinfo.php<\/strong>, primero deber\u00e1 crearlo en el mismo directorio que su <strong>Dockerfile<\/strong>.\nEl archivo debe contener el siguiente c\u00f3digo PHP:  <\/p>\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n&lt;?php phpinfo(); ?&gt;\n<\/pre><\/div>\n<p>A continuaci\u00f3n, a\u00f1ada la siguiente l\u00ednea a su Dockerfile:<\/p>\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n# Bonus: Copy phpinfo.php into the container\nCOPY phpinfo.php \/var\/www\/html\/phpinfo.php\n<\/pre><\/div>\n<p>Este comando copiar\u00e1 el archivo <strong>phpinfo.php<\/strong> en el directorio ra\u00edz de WordPress dentro de la imagen de Docker. <\/p>\n\n<p>Para asegurar que estos cambios surtan efecto, deber\u00e1 reconstruir su imagen de Docker y reiniciar los servicios de Docker Compose.\nEjecute los siguientes comandos en su terminal: <\/p>\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\nbash\ndocker-compose down\ndocker-compose up -d --build\n<\/pre><\/div>\n<p>El comando <strong>docker-compose down<\/strong> detiene y elimina sus contenedores de Docker actuales.\nDespu\u00e9s de esto, <strong>docker-compose up -d &#8211;build<\/strong> reconstruye la imagen de Docker con el archivo <strong>phpinfo.php<\/strong> reci\u00e9n a\u00f1adido, y reinicia sus servicios de WordPress y MySQL en segundo plano.<br\/>Ahora puede acceder al archivo <strong>phpinfo.php<\/strong> navegando a <strong>http:\/\/localhost:8000\/phpinfo.php<\/strong> en su navegador web.\nAqu\u00ed ver\u00e1 una p\u00e1gina detallada que describe su configuraci\u00f3n de PHP, lo que puede ser un recurso valioso para la depuraci\u00f3n y verificaci\u00f3n.  <\/p>\n\n<h3 class=\"wp-block-heading\">Paso 5: Comenzar a Depurar<\/h3>\n\n<p>Ahora que tiene su entorno de desarrollo local de WordPress configurado con Docker, Xdebug y PhpStorm, puede comenzar a depurar su sitio de WordPress.\nAqu\u00ed hay un resumen r\u00e1pido de c\u00f3mo empezar: <\/p>\n\n<ol class=\"wp-block-list\">\n<li><strong>Configurar Xdebug en PhpStorm<\/strong>: Abra PhpStorm y vaya a <strong>Archivo \u2192 Configuraci\u00f3n<\/strong> (<strong>Preferencias<\/strong> en Mac) <strong>\u2192 Lenguajes &amp; Frameworks \u2192 PHP \u2192 Depuraci\u00f3n<\/strong>.\nEn la secci\u00f3n <strong>Xdebug<\/strong>, aseg\u00farese de que el <strong>Puerto de depuraci\u00f3n<\/strong> est\u00e9 configurado en <strong>9003<\/strong> y la opci\u00f3n <strong>Puede aceptar conexiones externas<\/strong> est\u00e9 marcada. <\/li>\n\n\n\n<li><strong>Agregar un servidor PhpStorm<\/strong>: Navega a <strong>PHP \u2192 Servidores<\/strong>.\nAgrega un nuevo servidor con el nombre <strong>wordpress<\/strong> y el host <strong>localhost<\/strong>.\nConfigura el puerto a 8000.\nAseg\u00farate de que las asignaciones de rutas est\u00e9n configuradas correctamente: la ruta absoluta en el servidor para la carpeta <strong>wp_data<\/strong> debe ser <strong>\/var\/www\/html<\/strong>.   <\/li>\n\n\n\n<li><strong>Instalar la extensi\u00f3n Xdebug helper<\/strong>: Instala la extensi\u00f3n Xdebug helper para Google Chrome.\nUna vez instalada, haz clic en el icono de error y configura la clave IDE a <strong>PHPSTORM<\/strong>. <\/li>\n\n\n\n<li><strong>Comenzar a escuchar conexiones de depuraci\u00f3n PHP<\/strong>: En PhpStorm, haz clic en el icono de <strong>error<\/strong> en la esquina superior derecha para comenzar a escuchar conexiones de depuraci\u00f3n PHP.<\/li>\n\n\n\n<li><strong>Comenzar a depurar<\/strong>: Con los pasos anteriores completados, est\u00e1s listo para comenzar a depurar tu aplicaci\u00f3n de WordPress.\nSimplemente establece tus puntos de interrupci\u00f3n en PhpStorm seg\u00fan sea necesario, luego simplemente recarga tu sitio web.\n\u00a1Feliz depuraci\u00f3n!  <\/li>\n<\/ol>\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n<\/h2>\n\n<p>Al concluir este tutorial, espero que se convierta en un recurso valioso para ti como lo ha sido para m\u00ed en mi camino.\nLa capacidad de personalizar esta configuraci\u00f3n, como lo hicimos al agregar el archivo <strong>phpinfo.php<\/strong>, abre un sinf\u00edn de posibilidades, haciendo nuestro proceso de desarrollo m\u00e1s robusto y eficiente.\nTodo el c\u00f3digo est\u00e1 disponible en este <a href=\"https:\/\/github.com\/OnTheGoSystems\/wordpress-docker-devkit\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>repositorio de GitHub<\/strong><\/a>.\n\u00a1No dudes en clonarlo, probarlo y sugerir mejoras!   <\/p>\n\n<p>Personalmente uso un sistema operativo Ubuntu, \u00a1pero la belleza de esta configuraci\u00f3n es que gracias a Docker no importa!\nGracias al hecho de que Docker puede ejecutarse en cualquier sistema operativo por igual, ya sea que prefieras macOS, Windows o Linux, la configuraci\u00f3n y el uso son los mismos. <\/p>\n\n<p>Gracias por acompa\u00f1arme en este recorrido.\nEspero escuchar de ti sobre tus experiencias o cualquier sugerencia que puedas tener para mejorar a\u00fan m\u00e1s esta configuraci\u00f3n.\nRecuerda, el crecimiento prospera con el conocimiento compartido y el esp\u00edritu de colaboraci\u00f3n.  <\/p>\n\n<p>\u00a1Feliz codificaci\u00f3n, y sigamos creando experiencias incre\u00edbles de WordPress juntos!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Con Docker Compose, Xdebug y PhpStorm, puedes crear un entorno de desarrollo local reproducible, aislado y f\u00e1cilmente gestionable que refleja un servidor de producci\u00f3n, mejorando la calidad de tus proyectos de WordPress. \u00a1Hola, compa\u00f1eros desarrolladores de WordPress y usuarios avanzados! Hoy, estoy emocionado de compartir un tutorial completo pero sencillo sobre c\u00f3mo configurar un entorno [&hellip;]<\/p>\n","protected":false},"author":681557,"featured_media":13814297,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"_uag_custom_page_level_css":"","ep_exclude_from_search":false,"footnotes":""},"categories":[73],"tags":[],"class_list":["post-16110523","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tutoriales"],"spectra_custom_meta":{"_pingme":["1"],"_encloseme":["1"],"_subscription_coupon_product_id":["0"],"_wpv_contains_gutenberg_views":[""],"_alp_processed":["1724770555"],"_wpml_media_duplicate":["1"],"_wpml_media_featured":["1"],"toolset_post_editor_mode":["block"],"_yoast_wpseo_primary_category":["8"],"_yoast_wpseo_metadesc":["Configura un entorno de desarrollo local de WordPress con Docker, Xdebug y PhpStorm. Benef\u00edciate de una configuraci\u00f3n personalizable y f\u00e1cilmente replicable."],"_yoast_wpseo_opengraph-image":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker-fb-1024x536.png"],"_yoast_wpseo_twitter-image":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker-Twitter.png"],"_thumbnail_id":["13814297"],"_last_translation_edit_mode":["translation-editor"],"override_close_comments_for_old_posts":["0"],"cmplz_hide_cookiebanner":[""],"_wpml_word_count":["{\"total\":1918,\"to_translate\":{\"ar\":1918,\"zh-hans\":1918,\"en\":1918,\"fr\":1918,\"de\":1918,\"he\":1918,\"it\":1918,\"ja\":1918,\"ko\":1918,\"pt-br\":1918,\"ru\":1918,\"th\":1918,\"vi\":1918}}"],"_oembed_bbf56b1d4c25ce11481afba39f176f85":["{{unknown}}"],"_uagb_previous_block_counts":["a:90:{s:21:\"uagb\/advanced-heading\";i:0;s:15:\"uagb\/blockquote\";i:0;s:12:\"uagb\/buttons\";i:0;s:18:\"uagb\/buttons-child\";i:0;s:19:\"uagb\/call-to-action\";i:0;s:15:\"uagb\/cf7-styler\";i:0;s:11:\"uagb\/column\";i:0;s:12:\"uagb\/columns\";i:0;s:14:\"uagb\/container\";i:0;s:21:\"uagb\/content-timeline\";i:0;s:27:\"uagb\/content-timeline-child\";i:0;s:14:\"uagb\/countdown\";i:0;s:12:\"uagb\/counter\";i:0;s:8:\"uagb\/faq\";i:0;s:14:\"uagb\/faq-child\";i:0;s:10:\"uagb\/forms\";i:0;s:17:\"uagb\/forms-accept\";i:0;s:19:\"uagb\/forms-checkbox\";i:0;s:15:\"uagb\/forms-date\";i:0;s:16:\"uagb\/forms-email\";i:0;s:17:\"uagb\/forms-hidden\";i:0;s:15:\"uagb\/forms-name\";i:0;s:16:\"uagb\/forms-phone\";i:0;s:16:\"uagb\/forms-radio\";i:0;s:17:\"uagb\/forms-select\";i:0;s:19:\"uagb\/forms-textarea\";i:0;s:17:\"uagb\/forms-toggle\";i:0;s:14:\"uagb\/forms-url\";i:0;s:14:\"uagb\/gf-styler\";i:0;s:15:\"uagb\/google-map\";i:0;s:11:\"uagb\/how-to\";i:0;s:16:\"uagb\/how-to-step\";i:0;s:9:\"uagb\/icon\";i:0;s:14:\"uagb\/icon-list\";i:0;s:20:\"uagb\/icon-list-child\";i:0;s:10:\"uagb\/image\";i:0;s:18:\"uagb\/image-gallery\";i:0;s:13:\"uagb\/info-box\";i:0;s:18:\"uagb\/inline-notice\";i:0;s:11:\"uagb\/lottie\";i:0;s:21:\"uagb\/marketing-button\";i:0;s:10:\"uagb\/modal\";i:0;s:18:\"uagb\/popup-builder\";i:0;s:16:\"uagb\/post-button\";i:0;s:18:\"uagb\/post-carousel\";i:0;s:17:\"uagb\/post-excerpt\";i:0;s:14:\"uagb\/post-grid\";i:0;s:15:\"uagb\/post-image\";i:0;s:17:\"uagb\/post-masonry\";i:0;s:14:\"uagb\/post-meta\";i:0;s:18:\"uagb\/post-taxonomy\";i:0;s:18:\"uagb\/post-timeline\";i:0;s:15:\"uagb\/post-title\";i:0;s:20:\"uagb\/restaurant-menu\";i:0;s:26:\"uagb\/restaurant-menu-child\";i:0;s:11:\"uagb\/review\";i:0;s:12:\"uagb\/section\";i:0;s:14:\"uagb\/separator\";i:0;s:11:\"uagb\/slider\";i:0;s:17:\"uagb\/slider-child\";i:0;s:17:\"uagb\/social-share\";i:0;s:23:\"uagb\/social-share-child\";i:0;s:16:\"uagb\/star-rating\";i:0;s:23:\"uagb\/sure-cart-checkout\";i:0;s:22:\"uagb\/sure-cart-product\";i:0;s:15:\"uagb\/sure-forms\";i:0;s:22:\"uagb\/table-of-contents\";i:0;s:9:\"uagb\/tabs\";i:0;s:15:\"uagb\/tabs-child\";i:0;s:18:\"uagb\/taxonomy-list\";i:0;s:9:\"uagb\/team\";i:0;s:16:\"uagb\/testimonial\";i:0;s:14:\"uagb\/wp-search\";i:0;s:19:\"uagb\/instagram-feed\";i:0;s:10:\"uagb\/login\";i:0;s:17:\"uagb\/loop-builder\";i:0;s:18:\"uagb\/loop-category\";i:0;s:20:\"uagb\/loop-pagination\";i:0;s:15:\"uagb\/loop-reset\";i:0;s:16:\"uagb\/loop-search\";i:0;s:14:\"uagb\/loop-sort\";i:0;s:17:\"uagb\/loop-wrapper\";i:0;s:13:\"uagb\/register\";i:0;s:19:\"uagb\/register-email\";i:0;s:24:\"uagb\/register-first-name\";i:0;s:23:\"uagb\/register-last-name\";i:0;s:22:\"uagb\/register-password\";i:0;s:30:\"uagb\/register-reenter-password\";i:0;s:19:\"uagb\/register-terms\";i:0;s:22:\"uagb\/register-username\";i:0;}"],"_uag_css_file_name":["uag-css-16110523.css"]},"uagb_featured_image_src":{"full":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker.png",1024,800,false],"thumbnail":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker-150x117.png",150,117,true],"medium":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker-300x234.png",300,234,true],"medium_large":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker-768x600.png",768,600,true],"large":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker.png",1024,800,false],"1536x1536":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker.png",1024,800,false],"2048x2048":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker.png",1024,800,false],"gform-image-choice-sm":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker.png",300,234,false],"gform-image-choice-md":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker.png",400,313,false],"gform-image-choice-lg":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker.png",600,469,false],"woocommerce_thumbnail":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker-150x150.png",150,150,true],"woocommerce_single":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker-300x234.png",300,234,true],"woocommerce_gallery_thumbnail":["https:\/\/wpml.org\/wp-content\/uploads\/2023\/06\/debug-WordPress-sites-with-Docker-100x100.png",100,100,true]},"uagb_author_info":{"display_name":"Eran Helzer","author_link":"https:\/\/wpml.org\/es\/author\/eran-h\/"},"uagb_comment_info":0,"uagb_excerpt":"Con Docker Compose, Xdebug y PhpStorm, puedes crear un entorno de desarrollo local reproducible, aislado y f\u00e1cilmente gestionable que refleja un servidor de producci\u00f3n, mejorando la calidad de tus proyectos de WordPress. \u00a1Hola, compa\u00f1eros desarrolladores de WordPress y usuarios avanzados! Hoy, estoy emocionado de compartir un tutorial completo pero sencillo sobre c\u00f3mo configurar un entorno&hellip;","_links":{"self":[{"href":"https:\/\/wpml.org\/es\/wp-json\/wp\/v2\/posts\/16110523","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpml.org\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpml.org\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpml.org\/es\/wp-json\/wp\/v2\/users\/681557"}],"replies":[{"embeddable":true,"href":"https:\/\/wpml.org\/es\/wp-json\/wp\/v2\/comments?post=16110523"}],"version-history":[{"count":2,"href":"https:\/\/wpml.org\/es\/wp-json\/wp\/v2\/posts\/16110523\/revisions"}],"predecessor-version":[{"id":16110525,"href":"https:\/\/wpml.org\/es\/wp-json\/wp\/v2\/posts\/16110523\/revisions\/16110525"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wpml.org\/es\/wp-json\/wp\/v2\/media\/13814297"}],"wp:attachment":[{"href":"https:\/\/wpml.org\/es\/wp-json\/wp\/v2\/media?parent=16110523"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpml.org\/es\/wp-json\/wp\/v2\/categories?post=16110523"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpml.org\/es\/wp-json\/wp\/v2\/tags?post=16110523"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}