Powered by
Logo FrankenPHP

The Modern PHP App Server,
written in Go

Get started
# Install FrankenPHP on Linux or macOS
curl https://frankenphp.dev/install.sh | sh

# Or on Windows, with PowerShell
irm https://frankenphp.dev/install.ps1 | iex

# Serve the public/ directory
frankenphp php-server -r public/

# Run a command-line script
frankenphp php-cli 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!
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.

  • Watcher

    Automatically restart workers each time your code changes.

Fast as lightning

So easy to configure!

Three lines of config: it’s now all you need to start a production-grade PHP server (automatic HTTPS, HTTP/3, zstd compression…), powered by Caddy.
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.