Skip to content

FrankenPHP en FlyEnv

FrankenPHP es un servidor de aplicaciones PHP moderno construido sobre Caddy: integra un runtime de PHP completo y sirve aplicaciones PHP directamente, sin un proceso PHP-FPM separado. FlyEnv lo gestiona como un módulo dedicado: instala varias versiones de FrankenPHP, inícialas y deténlas como servicios, edita el Caddyfile y lee los logs sin salir de la app. Tus sitios obtienen su propio puerto y HTTPS automático desde el primer momento, sin ningún PHP-FPM que configurar.

Vista general del módulo FrankenPHP en FlyEnv

Gestión de versiones de FrankenPHP

Instala y mantén varias versiones de FrankenPHP en paralelo desde la pestaña Version Manager (Gestor de versiones).

  • Fuentes de instalación: builds estáticos en macOS, Linux y Windows, además de Homebrew en macOS y Linux — FlyEnv añade automáticamente el tap dunglas/frankenphp para que la fórmula esté disponible. MacPorts y SDKMAN no se utilizan para FrankenPHP.
  • Instalaciones estáticas en macOS y Linux: FlyEnv descarga el binario único de FrankenPHP, lo copia en su lugar, lo marca como ejecutable y elimina el atributo de cuarentena de macOS para que pueda ejecutarse.
  • Instalaciones estáticas en Windows: FrankenPHP se distribuye como un archivo comprimido que incluye un runtime de PHP completo. Durante la instalación, FlyEnv genera automáticamente un php.ini a partir de una plantilla, activando solo las extensiones realmente presentes en el directorio ext/ incluido.
  • Columnas de versión de PHP y Caddy: la tabla de versiones analiza frankenphp --version y muestra tanto la versión de PHP integrada como la versión de Caddy de cada build instalado, de modo que siempre sabes exactamente qué runtime lleva cada versión de FrankenPHP.
  • Acciones por versión: abre el directorio de la versión en el gestor de archivos y, en Windows, edita también el php.ini incluido mediante el mismo diálogo de configuración que usa el módulo PHP.

Version Manager de FrankenPHP con las columnas de versión de PHP y Caddy

Gestión del servicio

La pestaña Service (Servicio) lista cada versión instalada de FrankenPHP con controles de inicio, parada y reinicio, junto con la información de versiones de PHP y Caddy descrita arriba.

  • FlyEnv lanza una versión con frankenphp run --config <baseDir>/frankenphp/Caddyfile --pidfile …, de modo que el proceso se rastrea mediante el pidfile y puede detenerse limpiamente.
  • En Linux, el servicio se inicia a través del helper de root de FlyEnv cuando se necesitan privilegios elevados.
  • FrankenPHP sirve sitios PHP directamente a través de su motor Caddy integrado — no hay ningún proceso PHP-FPM que instalar, configurar o mantener en ejecución.

Pestaña Service de FrankenPHP con una versión en ejecución

Configuración

La pestaña Config File (Archivo de configuración) edita el Caddyfile global con el que se ejecuta FrankenPHP.

  • Editor de texto plano: el Caddyfile se edita como texto sin formato — FlyEnv no lo envuelve en un formulario.
  • Basado en plantilla: el archivo se genera a partir de una plantilla (disponible en inglés y chino) e importa todos los vhost de los sitios desde vhost/frankenphp/*, de modo que la configuración de los sitios permanece separada de los ajustes globales.
  • php.ini en Windows: como los builds de FrankenPHP para Windows incluyen su propio runtime de PHP, el php.ini de la versión puede abrirse y ajustarse desde el menú de acciones de la versión usando el diálogo de configuración del módulo PHP.

Visor de logs de FrankenPHP

Integración con sitios

Los sitios de tipo PHP creados en Host obtienen automáticamente un vhost de FrankenPHP con la directiva php_server, por lo que se ejecutan como aplicaciones FrankenPHP reales en lugar de una simple entrega de archivos estáticos — la solución Laravel muestra un stack de framework completo funcionando con este tipo de configuración.

  • Puertos por sitio: cada sitio obtiene su propio puerto dedicado de FrankenPHP (port.frankenphp), de modo que FrankenPHP puede servir el mismo sitio en paralelo con Nginx, Apache o Caddy. Los sitios creados antes de que existiera este comportamiento recurren al puerto compartido de Caddy.
  • HTTPS automático: los vhosts incluyen tls internal, lo que otorga a cada sitio un certificado de confianza local sin configuración adicional; los dominios y certificados de los sitios se tratan en Sitios locales, dominios personalizados y HTTPS.
  • Proxy inverso por sitio: un sitio puede, en su lugar, actuar como proxy inverso hacia otro servicio local a través de su vhost de FrankenPHP.
  • Vhosts autorregenerados: cuando se inicia una versión de FrankenPHP, FlyEnv regenera cualquier vhost de sitio que falte antes de lanzar el proceso.

Para una visión más amplia de cuándo elegir FrankenPHP frente a PHP-FPM, RoadRunner o Swoole, consulta la guía de despliegue de PHP.

Logs

La pestaña Log sigue frankenphp.log y también enumera cada archivo frankenphp-*.log en el directorio base de FrankenPHP, de modo que los logs específicos de cada versión y de cada sitio se pueden leer en un solo lugar.

Visor de logs de FrankenPHP

Continúa con una guía práctica, una solución, una demo o una perspectiva de la comunidad.

Notas de compatibilidad

FlyEnv gestiona el runtime de FrankenPHP, su configuración y su integración con los sitios; no garantiza que cada versión de FrankenPHP o cada extensión de PHP incluida esté disponible en todos los sistemas operativos. MacPorts y SDKMAN no son fuentes de instalación para este módulo, y FrankenPHP no ofrece panel de administración — verificar los requisitos del framework y de las extensiones contra el build instalado sigue siendo responsabilidad del proyecto. Toma la página de descarga y las notas de la versión actual como referencia de los paquetes soportados.