{"id":1605,"date":"2026-09-14T09:45:42","date_gmt":"2026-09-14T12:45:42","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/?p=1605"},"modified":"2026-09-14T09:45:42","modified_gmt":"2026-09-14T12:45:42","slug":"phpvirtualbox-gerencie-o-virtualbox-pelo-navegador","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/es\/2026\/09\/phpvirtualbox-gerencie-o-virtualbox-pelo-navegador\/","title":{"rendered":"phpVirtualBox: gestiona VirtualBox desde el navegador"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/09\/phpvirtualbox-painel-web-v1.webp\" alt=\"Mascote LinuxPro administrando m\u00e1quinas virtuais, acompanhado do cachorro caramelo cyborg, com logos PHP e VirtualBox no laborat\u00f3rio.\" width=\"1486\" height=\"856\" \/><\/p>\n<p>\u00bfYa tienes m\u00e1quinas en VirtualBox y te gustar\u00eda administrarlas desde el navegador, sin abrir la interfaz gr\u00e1fica en el host? phpVirtualBox <strong>phpVirtualBox<\/strong> se cre\u00f3 con ese prop\u00f3sito: ofrecer un panel web para el entorno de virtualizaci\u00f3n. En este art\u00edculo, el foco es el proyecto existente \u2014 sus funciones, arquitectura, requisitos y precauciones de uso \u2014, no la propuesta de reescribirlo en otro lenguaje.<\/p>\n<h2>Qu\u00e9 es phpVirtualBox<\/h2>\n<p>O <a href=\"https:\/\/github.com\/phpvirtualbox\/phpvirtualbox\">phpVirtualBox<\/a> es una interfaz web comunitaria para administrar m\u00e1quinas de Oracle VirtualBox. El navegador muestra el panel; el backend PHP reenv\u00eda las solicitudes al servicio de VirtualBox. No es un hipervisor ni un servicio que ejecute las m\u00e1quinas virtuales en la nube: el procesamiento sigue ocurriendo en el host donde est\u00e1n instaladas.<\/p>\n<p>Esta distinci\u00f3n ayuda a entender la propuesta. Si ya utiliza VirtualBox, phpVirtualBox a\u00f1ade una forma de gesti\u00f3n. No convierte autom\u00e1ticamente el entorno en un cl\u00faster, no cambia el formato de los discos y no sustituye el sistema operativo de las m\u00e1quinas.<\/p>\n<p>Para conocer el software detr\u00e1s del panel, consulte tambi\u00e9n <a href=\"\/es\/2026\/09\/a-historia-do-virtualbox\/\">la historia de VirtualBox<\/a>.<\/p>\n<h2>Para qui\u00e9n tiene sentido<\/h2>\n<p>Lo considerar\u00eda principalmente en un laboratorio que ya depende de VirtualBox: pruebas de distribuciones Linux, entornos de desarrollo descartables, demostraciones y estudio de redes. La ganancia es operativa: consultar y administrar m\u00e1quinas desde el navegador, manteniendo VirtualBox como base.<\/p>\n<p>Por ejemplo, un servidor del laboratorio puede hospedar m\u00e1quinas virtuales de prueba mientras el administrador accede al panel desde otro equipo a trav\u00e9s de la red privada. Esto no elimina el acceso SSH para el mantenimiento del host, pero puede evitar que cada operaci\u00f3n cotidiana dependa de una sesi\u00f3n en el terminal.<\/p>\n<p>Si su necesidad principal es alta disponibilidad, almacenamiento distribuido o gesti\u00f3n de un centro de datos, realice una evaluaci\u00f3n de arquitectura antes de elegir el panel. La facilidad de abrir una p\u00e1gina web no demuestra que la soluci\u00f3n cumpla con estos requisitos.<\/p>\n<h2>Qu\u00e9 se puede administrar desde el panel<\/h2>\n<p>O <a href=\"https:\/\/github.com\/phpvirtualbox\/phpvirtualbox\/blob\/develop\/endpoints\/lib\/vboxconnector.php\">conector del proyecto<\/a> implementa operaciones sobre m\u00e1quinas, medios y configuraciones. Entre las \u00e1reas de gesti\u00f3n se encuentran:<\/p>\n<ul>\n<li><strong>M\u00e1quinas virtuales:<\/strong> consulta de informaci\u00f3n, estados y acciones de ejecuci\u00f3n.<\/li>\n<li><strong>Configuraciones:<\/strong> recursos de la m\u00e1quina virtual, almacenamiento e interfaces de red.<\/li>\n<li><strong>Clonaci\u00f3n e instant\u00e1neas:<\/strong> operaciones \u00fatiles para preparar y restaurar escenarios de laboratorio.<\/li>\n<li><strong>Medios:<\/strong> gesti\u00f3n asociada a los discos e im\u00e1genes utilizados por las m\u00e1quinas.<\/li>\n<li><strong>Progreso:<\/strong> seguimiento de operaciones que no finalizan de inmediato.<\/li>\n<\/ul>\n<p>No interpretes esta lista como garant\u00eda de que cualquier funci\u00f3n de cualquier versi\u00f3n de VirtualBox est\u00e9 disponible. Algunas acciones dependen del estado de la VM y de la combinaci\u00f3n de versiones adoptada. Valida las funciones que realmente necesitas antes de incorporar el panel a la rutina.<\/p>\n<p>Tambi\u00e9n conviene distinguir acciones parecidas: solicitar el apagado del sistema invitado es diferente de apagar la VM a la fuerza; quitar un disco de la configuraci\u00f3n es diferente de eliminar su archivo. Lee la confirmaci\u00f3n antes de actuar. Snapshot ayuda en experimentos, pero no sustituye a una copia de seguridad con restauraci\u00f3n probada.<\/p>\n<h2>C\u00f3mo funciona: navegador, PHP y servicio SOAP<\/h2>\n<pre data-no-translation=\"\"><code class=\"language-text\" data-no-translation=\"\">Seu navegador\n    \u2193 HTTP\/HTTPS\nServidor web + phpVirtualBox\n    \u2193 SOAP\nvboxwebsrv\n    \u2193\nVirtualBox \u2192 m\u00e1quinas virtuais<\/code><\/pre>\n<p>El backend utiliza la API SOAP de VirtualBox. El componente <code data-no-translation=\"\">vboxwebsrv<\/code> recibe las llamadas; no es el propio servidor web quien ejecuta los sistemas invitados. El <a href=\"https:\/\/raw.githubusercontent.com\/phpvirtualbox\/phpvirtualbox\/develop\/Dockerfile\">Dockerfile del proyecto<\/a> incluye la extensi\u00f3n SOAP en el entorno PHP, una dependencia importante de esta comunicaci\u00f3n.<\/p>\n<p>En el <a href=\"https:\/\/raw.githubusercontent.com\/phpvirtualbox\/phpvirtualbox\/develop\/config.php-example\">ejemplo de configuraci\u00f3n<\/a>, la direcci\u00f3n del servicio es <code data-no-translation=\"\">http:\/\/127.0.0.1:18083\/<\/code>. Esa es la URL SOAP, no la direcci\u00f3n que el usuario abre para acceder al panel. La direcci\u00f3n <code data-no-translation=\"\">127.0.0.1<\/code> se refiere al entorno donde se ejecuta PHP; dentro de un contenedor, no apunta autom\u00e1ticamente al host.<\/p>\n<p>La configuraci\u00f3n tambi\u00e9n contiene las credenciales utilizadas para autenticarse en el servicio de VirtualBox, seg\u00fan su configuraci\u00f3n y un ejemplo para m\u00faltiples servidores. Estas credenciales no deben confundirse con el inicio de sesi\u00f3n de administrador de la interfaz. Mi recomendaci\u00f3n es documentar por separado ambos accesos y mantener los secretos fuera de los repositorios y copias de seguridad p\u00fablicas.<\/p>\n<h2>Requisitos y situaci\u00f3n actual del proyecto<\/h2>\n<p>El README consultado en septiembre de 2026 lista <strong>PHP 8.x, servidor web y VirtualBox 7.2.x<\/strong>. Apache y nginx aparecen como ejemplos de servidor web. Verifica estos requisitos en la versi\u00f3n que pretendes instalar; recetas antiguas pueden usar dependencias que no se corresponden con el proyecto actual.<\/p>\n<p>El historial no se detuvo en los primeros a\u00f1os de VirtualBox. El <a href=\"https:\/\/raw.githubusercontent.com\/phpvirtualbox\/phpvirtualbox\/develop\/CHANGELOG.txt\">changelog<\/a> registra compatibilidad con PHP 8.0\u20138.4 en la entrada 7.1-2 y mantenimiento m\u00e1s reciente de la interfaz. La entrada 7.2-3, del 5 de abril de 2026, incluye actualizaci\u00f3n de jQuery y jQuery UI. Estas son referencias del historial consultado, no una promesa de que cualquier checkout de la rama de desarrollo sea una versi\u00f3n estable.<\/p>\n<p>El archivo <a href=\"https:\/\/raw.githubusercontent.com\/phpvirtualbox\/phpvirtualbox\/develop\/LICENSE.txt\">LICENSE.txt<\/a> indica GNU GPL versi\u00f3n 3. El proyecto se ofrece sin garant\u00eda; en un entorno importante, corresponde al administrador evaluar el mantenimiento, la compatibilidad y el soporte necesarios.<\/p>\n<h2>\u00bfExiste consola remoto dentro del navegador?<\/h2>\n<p>Es preciso tener cuidado con capturas de pantalla y tutoriales antiguos. La entrada 7.2-2 del changelog registra la eliminaci\u00f3n de la antigua pesta\u00f1a Console que utilizaba clientes Flash y Java de RDP y VNC. No planifiques la instalaci\u00f3n contando con aquella funcionalidad antigua.<\/p>\n<p><strong>Administrar una VM y acceder a su escritorio son necesidades diferentes.<\/strong> Para Linux, SSH puede resolver la administraci\u00f3n del sistema invitado. Cuando haya necesidad de escritorio remoto, eval\u00fae por separado el protocolo, la configuraci\u00f3n de la VM y el cliente adecuado. Una interfaz de gesti\u00f3n no ofrece, por s\u00ed misma, una experiencia de consola HTML5.<\/p>\n<h2>C\u00f3mo comenzar la instalaci\u00f3n sin saltarse pasos<\/h2>\n<p>La instalaci\u00f3n documentada por el proyecto consiste en obtener el ZIP, extraer los archivos a una carpeta servida por el servidor web y convertir <code data-no-translation=\"\">config.php-example<\/code> en <code data-no-translation=\"\">config.php<\/code>, ajustando la configuraci\u00f3n. Esto prepara la aplicaci\u00f3n; no instala ni configura autom\u00e1ticamente toda la infraestructura necesaria.<\/p>\n<p>Para un primer laboratorio, yo seguir\u00eda este orden:<\/p>\n<ol>\n<li><strong>Validar VirtualBox:<\/strong> confirmar que una VM de prueba funciona en el host antes de a\u00f1adir el panel.<\/li>\n<li><strong>Comprobar el usuario de las VMs:<\/strong> identificar la cuenta responsable del entorno y sus archivos.<\/li>\n<li><strong>Preparar PHP:<\/strong> verificar la versi\u00f3n y la extensi\u00f3n SOAP en el entorno utilizado por el servidor web.<\/li>\n<li><strong>Preparar el servicio de integraci\u00f3n:<\/strong> configurar el acceso a <code data-no-translation=\"\">vboxwebsrv<\/code> en red restringida.<\/li>\n<li><strong>Configurar el panel:<\/strong> informar el endpoint y las credenciales correctas, sin publicar el archivo de configuraci\u00f3n.<\/li>\n<li><strong>Probar primero consultas:<\/strong> comparar la lista de m\u00e1quinas con lo que existe en el host.<\/li>\n<li><strong>Validar acciones en una VM desechable:<\/strong> solo despu\u00e9s liberar el uso habitual.<\/li>\n<\/ol>\n<p>Este es un guion de preparaci\u00f3n, no una receta de instalaci\u00f3n validada para toda distribuci\u00f3n. Los nombres de paquetes, servicios y configuraci\u00f3n de PHP var\u00edan. Evite mezclar fragmentos de tutoriales hechos para versiones diferentes.<\/p>\n<h2>Medidas de seguridad que no son opcionales<\/h2>\n<p>Seg\u00fan la <a href=\"https:\/\/docs.oracle.com\/en\/virtualization\/virtualbox\/7.2\/user\/Security.html\">documentaci\u00f3n de seguridad de Oracle<\/a>, el servicio SOAP utiliza HTTP sin cifrado por defecto y se vincula a localhost por defecto. Si el panel y el servicio est\u00e1n en hosts diferentes, planifique un transporte protegido y restricciones de acceso; no exponga el puerto SOAP directamente a internet como soluci\u00f3n r\u00e1pida.<\/p>\n<p>El inicio de sesi\u00f3n inicial proporcionado por el proyecto es <code data-no-translation=\"\">admin\/admin<\/code>. C\u00e1mbielo antes de poner el panel a disposici\u00f3n. Durante las pruebas, prefiera un acceso restringido y no confunda una contrase\u00f1a cambiada con una revisi\u00f3n completa de seguridad.<\/p>\n<ul>\n<li>Utilice HTTPS en el panel y restrinja qui\u00e9n puede acceder a \u00e9l, preferiblemente a trav\u00e9s de una red privada o VPN.<\/li>\n<li>No active la opci\u00f3n que deshabilita la autenticaci\u00f3n solo para evitar un error de inicio de sesi\u00f3n.<\/li>\n<li>Mantenga copias de la configuraci\u00f3n protegidas y nunca deje archivos de copia de seguridad accesibles desde el servidor web.<\/li>\n<li>No deje mecanismos temporales de recuperaci\u00f3n de acceso habilitados despu\u00e9s de utilizarlos.<\/li>\n<li>Actualice el panel, PHP y VirtualBox de forma coordinada, comprobando la compatibilidad previamente.<\/li>\n<\/ul>\n<h2>Problemas comunes: d\u00f3nde mirar primero<\/h2>\n<table>\n<thead>\n<tr>\n<th>S\u00edntoma<\/th>\n<th>Comprobaci\u00f3n inicial<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>El panel se abre, pero no se conecta al host<\/td>\n<td>Endpoint SOAP, servicio activo, conectividad y credenciales de la integraci\u00f3n.<\/td>\n<\/tr>\n<tr>\n<td>La lista de m\u00e1quinas virtuales est\u00e1 vac\u00eda<\/td>\n<td>Usuario responsable de las m\u00e1quinas y host seleccionado.<\/td>\n<\/tr>\n<tr>\n<td>Error relacionado con SOAP en PHP<\/td>\n<td>Extensi\u00f3n cargada en el PHP del servidor web, no solo en la terminal.<\/td>\n<\/tr>\n<tr>\n<td>Una operaci\u00f3n funciona en el host, pero falla en el panel<\/td>\n<td>Compatibilidad de las versiones, permisos y estado actual de la VM.<\/td>\n<\/tr>\n<tr>\n<td>La consola mostrada en un tutorial no aparece<\/td>\n<td>Fecha del tutorial y eliminaci\u00f3n de los antiguos clientes de consola.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Para comprobar el inventario local sin modificar las m\u00e1quinas, VirtualBox ofrece estos comandos. Ejec\u00fatelos en el host, con el mismo usuario responsable de las VMs:<\/p>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\">VBoxManage --version\nVBoxManage list vms\nVBoxManage list runningvms<\/code><\/pre>\n<p>Muestran versi\u00f3n, m\u00e1quinas registradas y m\u00e1quinas en ejecuci\u00f3n. No corrigen la integraci\u00f3n autom\u00e1ticamente, pero ayudan a separar un problema del panel de un problema en el entorno de VirtualBox. <a href=\"https:\/\/docs.oracle.com\/en\/virtualization\/virtualbox\/7.2\/user\/vboxmanage.html\">Referencia oficial de VBoxManage<\/a>.<\/p>\n<h2>\u00bfMerece la pena conocerlo?<\/h2>\n<p>S\u00ed, especialmente si VirtualBox ya forma parte de su laboratorio y desea comprender una alternativa de administraci\u00f3n desde el navegador. La evaluaci\u00f3n debe comenzar por el proyecto real: funciones necesarias, compatibilidad, seguridad y mantenimiento. No es necesario proponer una reescritura para reconocer la utilidad de lo que ya ofrece.<\/p>\n<p>Para explorar el proyecto, visite el <a href=\"https:\/\/github.com\/phpvirtualbox\/phpvirtualbox\">repositorio oficial<\/a>. Por separado, publicamos una serie sobre una posible modernizaci\u00f3n: <a href=\"\/es\/2026\/09\/phpvirtualbox-em-go-parte-1-echo-vue-e-binario-unico\/\">parte 1 \u2014 arquitectura en Go, Echo y Vue<\/a>, <a href=\"\/es\/2026\/09\/phpvirtualbox-em-go-parte-2-migracao-com-ia-e-openspec\/\">parte 2 \u2014 IA y OpenSpec<\/a> e <a href=\"\/es\/2026\/09\/phpvirtualbox-em-go-parte-3-roteiro-de-implementacao-e-testes\/\">parte 3 \u2014 implementaci\u00f3n y pruebas<\/a>. La serie es una propuesta de ingenier\u00eda; el phpVirtualBox presentado aqu\u00ed es el software existente.<\/p>","protected":false},"excerpt":{"rendered":"<p>Conoce phpVirtualBox: caracter\u00edsticas, arquitectura, requisitos, precauciones de instalaci\u00f3n y diagn\u00f3stico para administrar m\u00e1quinas virtuales desde el navegador.<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,120],"tags":[],"class_list":["post-1605","post","type-post","status-publish","format-standard","hentry","category-linux","category-servidores"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/1605","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/comments?post=1605"}],"version-history":[{"count":2,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/1605\/revisions"}],"predecessor-version":[{"id":1608,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/posts\/1605\/revisions\/1608"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/media?parent=1605"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/categories?post=1605"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/es\/wp-json\/wp\/v2\/tags?post=1605"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}