Skip to content

FrankenPHP

A PHP web server built on Caddy that can run PHP apps faster and add HTTPS automatically.

Stars
11.5k
Forks
508
Licence
MIT
Language
Go
Last update
4 days ago
Type
App

What it is

FrankenPHP is an application server for PHP, built on the Caddy web server. It serves PHP websites and apps and adds features such as automatic HTTPS, HTTP/2 and HTTP/3, early hints, and a worker mode that keeps the app loaded between requests. It is also usable as a Go library for embedding PHP in Go programs.

  • Serve a local PHP project by running frankenphp php-server in its folder
  • Run a PHP command-line script with frankenphp php-cli
  • Run a PHP app in a Docker container with HTTPS on localhost
  • Embed PHP inside a Go web service using net/http

Great for

  • PHP developers who want a single binary to serve their app with HTTPS included
  • Laravel or Symfony projects that could benefit from the official worker mode integrations
  • Teams wanting to run a PHP app without installing a separate web server
  • People who want to package a PHP app as a standalone executable

Not ideal for

  • Users who need a fully managed hosting platform, since this is server software you must run and maintain
  • Developers with no PHP code to serve, because it only runs PHP applications
  • Those who need an extensively proven setup for critical production without testing first, since the README points to a known-issues page
Step-by-step guide: how to use FrankenPHPInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Download the app

    Install on Linux or macOS

    curl https://frankenphp.dev/install.sh | sh

    Install on Windows (PowerShell)

    irm https://frankenphp.dev/install.ps1 | iex

    Install with Homebrew

    brew install dunglas/frankenphp/frankenphp

    Run with Docker

    docker run -v .:/app/public -p 80:80 -p 443:443 -p 443:443/udp dunglas/frankenphp
  2. 2

    Run it

    • Install FrankenPHP using one of the install commands
    • Open a terminal in your PHP project folder
    • Run frankenphp php-server to serve the current directory
    • Open https://localhost and accept the self-signed certificate
  3. 3

    Get the most out of it

    • Use the SERVER_NAME environment variable to change the served domain
    • Read the worker mode docs before enabling it for Laravel or Symfony
    • Use the Docker images page for container deployments
    • Install extensions via PIE when they are not included by default

Downloads

Strengths

  • Bundles the web server, HTTPS and PHP runtime in one program
  • Official worker mode and hot reloading options for Laravel and Symfony
  • Linux binaries are statically linked and need no extra dependencies

Trade-offs

  • Worker mode and advanced features require understanding how long-running PHP processes behave
  • Platform binaries are limited: Linux, macOS on Apple Silicon, and Windows
  • The README's feature list is truncated and details must be checked on the docs site

How it compares

ProjectStarsTypeLevelUpdatedBest for
frankenphp (this)11.5kAppintermediate4 days agoPHP developers who want a single binary to serve their app with HTTPS included
composer29.6kDev toolbeginner4 days agoPHP developers starting a new project who want standard third-party libraries
bagisto28.3kAppintermediate4 days agoDevelopers building a custom online store on Laravel
laravel-crm24.1kAppintermediate4 days agoSmall and mid-sized businesses that want a self-hosted CRM
guzzle23.4kLibraryintermediate11 days agoPHP developers who need to call external REST or web service APIs
monolog21.4kLibraryintermediate5 days agoPHP developers who need structured logs from an application

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.