Powered by
Logo FrankenPHP

The Modern PHP App Server,
written in Go

Get started
# Docker
docker run -v $PWD:/app/public -p 443:443 \
  dunglas/frankenphp
# Static binary
./frankenphp php-server

# Command-line script
./frankenphp php-cli /path/to/your/script.php
One command to run them all

Get started!

Get a production-grade PHP server up and running in just one command!
Ready for the future?

Moderner PHP Than Ever!

  • Uses the official PHP executor embedded in a state-of-the-art web server: Caddy
  • Native support for HTTP/1.1, HTTP/2 and HTTP/3
  • Automatic HTTPS certificates generation and renewal (Let’s Encrypt or ZeroSSL)
  • Copy your PHP files in the document root, that’s all!
  • Build standalone, self-executable and dependencies-free binaries for your PHP web applications, and command-line tools.
  • Popular PHP extensions, including OPcache and XDebug, are natively supported!

Native support for

Drupal Sulu WordPress Laravel Symfony API Platform Drupal Sulu WordPress Laravel Symfony API Platform Drupal Sulu WordPress Laravel Symfony API Platform
Make your PHP apps faster than ever!

Worker mode

  • Worker script

    Boot your app once, it stays in memory!

  • Straightforward

    Natively supported by Symfony, API Platform, Laravel…

  • Simple

    Uses plain old superglobals: no need for PSR-7.

  • Fast

    According to our benchmarks, 3.5x faster than FPM on API Platform apps.

  • Efficient

    FrankenPHP is written in Go and C. It relies on Go’s iconic feature: goroutines!

  • Optional

    Your app can be served as-is, even if it isn’t compatible with the worker mode.

  • Easy Deploy

    Runs in process: one binary, no external service needed.

Fast as lightning

So easy to configure!

Five lines of config: it’s now all you need to start a production-grade PHP server (automatic HTTPS, HTTP/3, Brotli compression…), powered by Caddy.
{
    # Enable FrankenPHP
    frankenphp
    order php_server before file_server
}

localhost {
    # Enable compression (optional)
    encode zstd br gzip
    # Execute PHP files in the current directory and serve assets
    php_server
}
Features

FrankenPHP at a glance

Extensible

Compatible with PHP 8.2+, most PHP extensions and all Caddy modules.

Only one service

Designed with simplicity in mind: only one service, only one binary! FrankenPHP doesn’t need PHP-FPM, it uses its own SAPI specially handcrafted for Go web servers.

Easy deploy

Cloud Native app shipped as a Docker image. Compatible with Kubernetes, and all modern cloud platforms. It’s also possible to package your PHP app as a standalone, self-executable static binary.

Worker mode

Boot your application once and keep it in memory! It is ready to handle incoming requests in a few milliseconds.

103 Early Hints

Early Hints are a brand new feature of the web platform that can improve website load times by 30%. FrankenPHP is the only PHP SAPI with Early Hints support!

Real-time

Built-in Mercure hub. Send events from your PHP apps to all connected browsers, they instantly receive the payload as a JavaScript event!

Brotli, Zstandard and Gzip compression

Modern compression formats are supported out-of-the-box.

Structured logging

Bring a more defined format and details to your logging.

Prometheus metrics and tracing

HTTP/2 & HTTP/3

Native support for HTTPS, HTTP/2 and HTTP/3.

HTTPS Automation

Automatic HTTPS certificate generation, renewal and revocation.

Graceful reload

Deploy your apps with zero downtime thanks to graceful reloads.