
Tired of wrestling with Nginx configs, debugging 502 gateways, and losing speed to the traditional PHP boot cycle?
FrankenPHP simplifies your entire stack into a single binary and keeps your app in memory for 3–10x faster performance. To help you modernize your workflow without spending a dime, I’ve curated the top free resources to learn FrankenPHP this year.
Shortcuts
Why Learn FrankenPHP?
FrankenPHP is a modern application server for PHP.
Traditionally, running a PHP website required setting up a web server (like Nginx or Apache) and a separate PHP process manager (PHP-FPM). FrankenPHP simplifies this by combining the web server and the PHP engine into a single program.
It is built on top of Caddy (a modern web server written in Go) and embeds the official PHP interpreter directly. This makes it incredibly fast and much easier to deploy than traditional stacks.
Don’t know any PHP? We recommend you take the courses in this PHP Skill Guide.
Why FrankenPHP?
- Simplicity: You only need one binary or Docker container to run your site, instead of managing multiple services (Nginx, FPM, etc.).
- Performance: It has a Worker Mode that keeps your application in memory, avoiding the need to restart the entire application for every single user request.
- Modern Features: It comes with automatic HTTPS, support for the newest web protocols (HTTP/3), real-time capabilities, and much much more.
PHP-FPM vs FrankenPHP
| PHP-FPM | FrankenPHP | |
| Architecture | Separate web server + PHP-FPM | Single binary combining both |
| Configuration | Multiple config files | Single Caddyfile |
| HTTPS | Manual certificate management | Automatic via Let’s Encrypt |
| Worker Mode | Requires RoadRunner/Swoole | Built-in |
| Performance | ~4,000 req/sec baseline | ~15,000 req/sec in worker mode |
| HTTP/3 | Complex setup | Native support |
Why Trust My Picks?
Class Central, a Tripadvisor for online education, has helped 100 million learners find their next course. We’ve been combing through online education for more than a decade to aggregate a catalog of 250,000 online courses. We’re online learners ourselves: combined, the Class Central team has completed over 400 online courses, including online degrees.
Though there aren’t many resources for FrankenPHP out (yet), I’ve made my picks based off the following criteria:
- Comprehensiveness: FrankenPHP is bleeding-edge, so you won’t find 20-hour bootcamps. I’ve gathered the essential resources that cover the full stack (both theory and Docker deployment).
- Speed: You likely want to test the waters before migrating. These picks are short and focused, helping you understand the “why” and “how” without wasting any time.
Now without further ado, let’s get on to my picks!
Best FrankenPHP Courses
| Course Name | Duration |
| Best Official Guide (FrankenPHP) | 2–3 hours |
| Best Video or Architecture & Philosophy Deep Dive (Kévin Dunglas) | <1 hour |
| Best Guide for Laravel Devs (Dan Storm) | Short |
| Best Tutorial for Traditional PHP Developers (Sevalla) | Short |
| Best Article for Symfony Devs (Nicolas Bonnici) | Short |
| Bonus Resources | Varies |
Best Official Guide (FrankenPHP)
| Take if: | Skip if: |
|
|
- Duration: 2–3 hours (estimated)
- Cost: Free

Traditional PHP deployment typically involves juggling separate processes, configuration files, and certificate management. FrankenPHP consolidates all of this into a single binary.
Built on Caddy by Kévin Dunglas, FrankenPHP embeds PHP directly into a Go-based server. That means no FPM, no separate webserver, no Let’s Encrypt headaches. Awesome!
The core documentation covers everything you need to go from basics to production:
- Classic Mode: Run frankenphp php-server and it just works. Drop-in PHP-FPM replacement with HTTP/2, HTTP/3, and compression included.
- Installation: Prebuilt binaries, Docker images, or compile from sources with custom PHP extensions using xcaddy.
- Configuration: The Caddyfile format makes webserver config readable. Workers, environment variables, and PHP settings live in one file.
- Worker Mode: Boot your app once and keep it in memory with millisecond response times. There are dedicated guides for Laravel Octane, WordPress, and Symfony Runtime.
- Developer Experience: Built-in hot reload via Mercure. Change PHP, templates, or CSS and your browser updates instantly.
- Production: Deploy with Docker Compose or bundle your entire app into a standalone binary, with automatic TLS, metrics, and structured logging bundled in.
Best Video for Architecture & Philosophy Deep Dive (Kévin Dunglas)
| Take if: | Skip if: |
|
|
- Duration: <1 hour
- Cost: Free
While the documentation tells you how to use FrankenPHP, this talk on YouTube explains why it exists and how it works under the hood.
Presented at PHP UK Conference by the creator of FrankenPHP himself, Kévin Dunglas, you’ll cover all the fun and interesting stuff that the docs don’t include, such as:
- The problem FrankenPHP solves: PHP-FPM in Kubernetes requires complex Unix socket configuration, and PHP’s timeout model prevents real-time features like Server-Sent Events.
- Architecture design: See how FrankenPHP embeds PHP into Caddy using Go’s net/http foundation, giving the engine direct TCP/UDP access instead of routing through FastCGI.
- Concrete benchmarks: 2x faster than Road Runner and 6x more efficient than PHP-FPM according to Laravel and Symfony benchmarks.
- Real-time: The built-in Mercure hub runs in Go, managing concurrent connections without blocking PHP workers; something impossible with traditional PHP deployment.
- Ecosystem in action: FrankenWP demonstrates in-memory caching for WordPress, and the Parallel extension adds multi-core processing.
There’s an updated talk from PHPverse 2025 that introduces writing PHP extensions in pure Go without C boilerplate, but it skips most technical details.
Best Guide for Laravel Devs (Dan Storm)
| Take if: | Skip if: |
|
|
- Duration: Short
- Cost: Free
Laravel Sail works locally, however it requires different production containers. From development to production builds, this opinionated guide by Dan Storm will show you how to run Laravel with FrankenPHP, covering:
- Custom Dockerfile: Extends official FrankenPHP image with MySQL extensions using docker-php-extension-installer.
- Docker Compose setup: MySQL, Redis, and helper Artisan service with proper networking and credential management.
- Multi-stage builds: Separate dev and production targets with GitHub Actions workflow for CI/CD.
- Production hardening: Dedicated database users, Redis authentication, Docker secrets for sensitive data.
Best Tutorial for Symfony Devs (Nicolas Bonnici)
| Take if: | Skip if: |
|
|
- Duration: Short
- Cost: Free
We can’t possibly have a Laravel guide without a Symfony one!
This short tutorial by Nicolas Bonnici will walk you through creating a production-ready foundation for monoliths or REST APIs.
You’ll learn:
- Multi-stage Docker setup: Separate dev and production targets with Debian Bookworm-based FrankenPHP.
- Symfony configuration: Install the FrankenPHP runtime component, worker mode, and essential bundles (Doctrine, CORS, security).
- Docker Compose orchestration: Database container with PostgreSQL, networking, and environment variable management via .env files.
- Automation and Optimization: Composer scripts for container management, and other miscellaneous topics like database migrations, fixtures, linting, optimization, and testing.
Best Article for Traditional PHP Developers (Sevalla)
| Take if: | Skip if: |
|
|
- Duration: Short
- Cost: Free

After years wrestling with Apache, PHP-FPM, and SSL certificates, Steve McDougall felt discovering FrankenPHP was like finding a hidden shortcut.
In this short article, Steve explains why FrankenPHP represents a paradigm shift rather than an incremental improvement with concrete examples and production deployment strategies.
You’ll learn about:
- Automatic HTTPS: FrankenPHP obtains and renews Let’s Encrypt certificates with zero configuration — quite magical compared to traditional setups.
- Worker mode explained: Persistent application state delivers 2–3x performance improvements because expensive initialization runs once.
- Async PHP with Fibers: Opens asynchronous programming possibilities previously difficult in PHP.
- Standalone binary compilation: Build your entire application into a 50MB executable replacing multiple services and configs.
- Kubernetes advantages: Single binary eliminates init containers and complex volume mounting.
There’s also an accompanying Reddit discussion that you can find here.
Bonus Resources
Here are some miscellaneous resources that I found useful while researching this BCG:
- There are paid trainings for mastering FrankenPHP on les-tilleuls.coop and thephpcc.academy.
Did this guide help? We’ve got 200+ more for you. Check our Best Courses Guides to find your next course!
The post 5 Best Free FrankenPHP Resources for 2026 appeared first on The Report by Class Central.





