guides/FrankenPHP.md

FrankenPHP

Overview:

FrankenPHP provides a modern PHP runtime with a built-in web server and optional worker mode for long-lived processes. This guide covers classic mode, worker mode, Docker deployment, and static binaries.

Classic mode

Worker mode

Example worker loop:

require __DIR__ . '/vendor/autoload.php';
require __DIR__ . '/tools/frankenphp-worker.php';

Docker + Caddyfile

Example Dockerfile:

FROM dunglas/frankenphp:latest
WORKDIR /app
COPY . /app
RUN composer install --no-dev --optimize-autoloader
CMD ["frankenphp", "run", "--config", "/app/Caddyfile"]

Example Caddyfile:

:8080 {
  root * /app/public
  php_server
}

Worker mode with Caddyfile:

:8080 {
  root * /app/public
  php_server {
    worker /app/tools/frankenphp-worker.php
  }
}

Static binaries (full guide)

1. Build with official tooling:

Notes: