News

FrankenPHP v1.0 is Here

Published Updated
FrankenPHP v1.0 is Here image

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.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Filed in

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
Agent Run Observability in Laravel AI SDK 0.11 image

Agent Run Observability in Laravel AI SDK 0.11

Read article
Debounced Queued Event Listeners in Laravel image

Debounced Queued Event Listeners in Laravel

Read article
Statamic Mailables Viewer Previews Laravel Emails in the Control Panel image

Statamic Mailables Viewer Previews Laravel Emails in the Control Panel

Read article
Laravel Tackle: Run an AI Coding Agent in Your Laravel App image

Laravel Tackle: Run an AI Coding Agent in Your Laravel App

Read article
Queue::forward(): Reroute Laravel Queues in One Place image

Queue::forward(): Reroute Laravel Queues in One Place

Read article
Laravel Read-Through Filesystem: Lazy Storage Migration image

Laravel Read-Through Filesystem: Lazy Storage Migration

Read article