explaingit

php/frankenphp

11,065GoAudience · developerComplexity · 3/5Setup · easy

TLDR

FrankenPHP replaces Nginx and PHP-FPM with a single binary that serves PHP apps with automatic HTTPS, HTTP/2, and a worker mode that keeps Laravel or Symfony loaded in memory between requests.

Mindmap

mindmap
  root((frankenphp))
    What it replaces
      Nginx
      PHP-FPM
      Manual config
    Key features
      Automatic HTTPS
      HTTP2 and HTTP3
      Worker mode
    Supported frameworks
      Laravel
      Symfony
      WordPress
    Installation
      Single binary
      Docker image
      Package managers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace a Nginx and PHP-FPM setup with one binary to simplify your server configuration.

USE CASE 2

Speed up a Laravel or Symfony app using worker mode that keeps the app in memory between requests.

USE CASE 3

Deploy WordPress or Drupal with automatic HTTPS using FrankenPHP on Linux, macOS, or Windows.

USE CASE 4

Embed PHP execution inside a Go application by using FrankenPHP as a Go library.

Tech stack

GoPHP

Getting it running

Difficulty · easy Time to first run · 5min

In plain English

FrankenPHP is an application server for PHP, the programming language used to build websites like WordPress, Laravel apps, and Symfony projects. Most PHP setups require multiple separate pieces working together: a web server like Nginx, a PHP processor called PHP-FPM, and manual configuration to connect them. FrankenPHP replaces that entire stack with a single binary. It is built on top of Caddy, a web server written in Go that handles HTTPS certificates automatically. Because of this, FrankenPHP provides automatic HTTPS right out of the box, along with support for HTTP/2 and HTTP/3, which are newer and faster versions of the web protocol. It also supports a worker mode that keeps your PHP application loaded in memory between requests, which can significantly speed up frameworks like Laravel and Symfony that normally reload from scratch on every request. You can install FrankenPHP as a standalone binary on Linux, macOS, or Windows, and it comes bundled with PHP 8.5 and the most commonly used PHP extensions. No separate PHP installation is required on Linux. Package manager options (apt, dnf, apk, Homebrew) are available, as are Docker images. To start serving a PHP project, you run a single command in your project folder. For existing projects built on Symfony, Laravel, WordPress, Drupal, Joomla, or Magento, there are integration guides covering how to switch from a traditional Nginx and PHP-FPM setup. FrankenPHP can also function as a Go library, meaning developers who build applications in Go can embed PHP directly into their programs.

Copy-paste prompts

Prompt 1
Migrate my Laravel app from a Nginx and PHP-FPM setup to FrankenPHP worker mode, show me the Caddyfile config and startup commands.
Prompt 2
Write a Dockerfile that uses FrankenPHP to serve a WordPress site with automatic HTTPS and PHP 8.5.
Prompt 3
How do I install FrankenPHP on Ubuntu using apt and serve a Symfony project in worker mode from day one?
Prompt 4
Show me how to embed PHP execution inside a Go program using FrankenPHP as a Go library with a minimal working example.
Open on GitHub → Explain another repo

← php on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.