FrankenPHP v1.0 is Here
Last updated on by Paul Redmond
FrankenPHP just hit a significant milestone this week, reaching a v1.0 release. A modern PHP application server written in Go, FrankenPHP gives you a production-grade PHP server with just one command.
It includes native support for Symphony, Laravel, WordPress, and more:
- Production-grade PHP server, powered by Caddy
- Easy deploy - package your PHP apps as a standalone, self-executable binary
- Run only one service - no more separate PHP-FPM and Nginx processes
- Extensible - compatible with PHP 8.2+, most PHP extensions, and all Caddy modules
- Worker mode - boot your application once and keep it in memory
- Real-time events sent to the browser as a JavaScript event
- Zstandard and Gzip compression
- Structured logging
- Monitor Caddy with built-in Prometheus metrics
- Native support for HTTPS, HTTP/2 and HTTP/3
- Automatic HTTPS certificates and renewals
- Graceful release - deploy your apps with zero downtime
- Support for Early Hints
Is there support for FrakenPHP in Laravel Octane? Not yet, but there is an active pull request to Add support for FrankenPHP to Laravel Octane.
Which PHP modules are supported? I tried looking for a definitive list, but from what I gather most popular PHP extensions should work. The documentation confirms that OPcache and Debug are natively supported by FrankenPHP.
FrakenPHP uses static-php-cli
to make builds, so this list of extensions should be accurate in which extensions are supported (hat tip to Francis Lavoie).
Learn more
You can get started with FrankenPHP at frankenphp.dev, and browse the documentaion to learn about the worker mode, Docker images, and creating static binaries of your application.
If you want to experiment with your application, the easiest way to try it out is to run the following Docker command:
docker run -v $PWD:/app/public \ -p 80:80 -p 443:443 \ dunglas/frankenphp
For Laravel, you'll need to run the following Docker command (the FrankenPHP Laravel docs have complete setup instructions):
docker run -p 443:443 -v $PWD:/app dunglas/frankenphp
You can also run the frankenphp
binary in macOS and Linux if you'd rather not use Docker.