FrankenPHP: el servidor de aplicaciones PHP moderno, escrito en Go
FrankenPHP es un servidor de aplicaciones moderno para PHP construido sobre el servidor web Caddy.
FrankenPHP otorga superpoderes a tus aplicaciones PHP gracias a sus características de vanguardia: Early Hints, modo worker, funcionalidades en tiempo real, HTTPS automático, soporte para HTTP/2 y HTTP/3...
FrankenPHP funciona con cualquier aplicación PHP y hace que tus proyectos Laravel y Symfony sean más rápidos que nunca gracias a sus integraciones oficiales con el modo worker.
FrankenPHP también puede usarse como una biblioteca Go autónoma que permite integrar PHP en cualquier aplicación usando net/http.
Descubre más detalles sobre este servidor de aplicaciones en la grabación de esta conferencia dada en el Forum PHP 2022:
Para Comenzar
En Windows, usa WSL para ejecutar FrankenPHP.
Script de instalación
Puedes copiar esta línea en tu terminal para instalar automáticamente una versión adaptada a tu plataforma:
curl https://frankenphp.dev/install.sh | sh
Binario autónomo
Proporcionamos binarios estáticos de FrankenPHP para desarrollo, para Linux y macOS, conteniendo PHP 8.4 y la mayoría de las extensiones PHP populares.
Instalación de extensiones: Las extensiones más comunes están incluidas. No es posible instalar más.
Paquetes rpm
Nuestros mantenedores proponen paquetes rpm para todos los sistemas que usan dnf. Para instalar, ejecuta:
sudo dnf install https://rpm.henderkes.com/static-php-1-0.noarch.rpm
sudo dnf module enable php-zts:static-8.4 # 8.2-8.5 disponibles
sudo dnf install frankenphp
Instalación de extensiones: sudo dnf install php-zts-<extension>
Para extensiones no disponibles por defecto, usa PIE:
sudo dnf install pie-zts
sudo pie-zts install asgrim/example-pie-extension
Paquetes deb
Nuestros mantenedores proponen paquetes deb para todos los sistemas que usan apt. Para instalar, ejecuta:
sudo curl -fsSL https://key.henderkes.com/static-php.gpg -o /usr/share/keyrings/static-php.gpg && \
echo "deb [signed-by=/usr/share/keyrings/static-php.gpg] https://deb.henderkes.com/ stable main" | sudo tee /etc/apt/sources.list.d/static-php.list && \
sudo apt update
sudo apt install frankenphp
Instalación de extensiones: sudo apt install php-zts-<extension>
Para extensiones no disponibles por defecto, usa PIE:
sudo apt install pie-zts
sudo pie-zts install asgrim/example-pie-extension
Docker
Las imágenes Docker también están disponibles:
docker run -v .:/app/public \
-p 80:80 -p 443:443 -p 443:443/udp \
dunglas/frankenphp
Ve a https://localhost, ¡listo!
Tip
No intentes usar
https://127.0.0.1. Usahttps://localhosty acepta el certificado auto-firmado. Usa la variable de entornoSERVER_NAMEpara cambiar el dominio a usar.
Homebrew
FrankenPHP también está disponible como paquete Homebrew para macOS y Linux.
Para instalarlo:
brew install dunglas/frankenphp/frankenphp
Instalación de extensiones: Usa PIE.
Uso
Para servir el contenido del directorio actual, ejecuta:
frankenphp php-server
También puedes ejecutar scripts en línea de comandos con:
frankenphp php-cli /ruta/a/tu/script.php
Para los paquetes deb y rpm, también puedes iniciar el servicio systemd:
sudo systemctl start frankenphp
Documentación
- El modo clásico
- El modo worker
- Soporte para Early Hints (código de estado HTTP 103)
- Tiempo real
- Hot reloading
- Registro de actividad
- Servir eficientemente archivos estáticos grandes
- Configuración
- Escribir extensiones PHP en Go
- Imágenes Docker
- Despliegue en producción
- Optimización del rendimiento
- Crear aplicaciones PHP autónomas, auto-ejecutables
- Crear una compilación estática
- Compilar desde las fuentes
- Monitoreo de FrankenPHP
- Integración con WordPress
- Integración con Laravel
- Problemas conocidos
- Aplicación de demostración (Symfony) y benchmarks
- Documentación de la biblioteca Go
- Contribuir y depurar

