October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsClean PCRecommendedOne scan can reveal what keeps slowing WindowsLook for cleanup and repair opportunities.Run ScanOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk5 min

PHP-FPM, FrankenPHP Classic, or Octane? Key Differences for Laravel

PHP-FPM, FrankenPHP classic, and Octane workers operate at different layers. Compare their request lifecycles, state-safety requirements, deployment needs, and how to benchmark them fairly.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

PHP-FPM, FrankenPHP classic mode, and an Octane worker are not three interchangeable PHP runtimes. PHP-FPM manages PHP processes over FastCGI; FrankenPHP classic is a Caddy-based application-server mode; and Octane keeps a Laravel application booted in memory across requests. Choose by the layer you need, your deployment setup, and whether your application is safe to run persistently—not by assuming one is universally faster.

What each option does

PHP-FPM: a FastCGI process manager

PHP-FPM manages PHP worker processes and communicates over FastCGI. It is commonly paired with a separate web server, which accepts client traffic and passes PHP requests to FPM. FPM supports pools and several child-process management modes; its configuration determines how PHP workers are created and managed.

As an Amazon Associate I earn from qualifying purchases.

FrankenPHP classic: an application server

FrankenPHP is built on Caddy and serves PHP applications directly. Its documentation distinguishes classic mode from worker mode. Classic mode is the relevant comparison here: it is not, by itself, the persistent Laravel application worker provided through Octane. FrankenPHP also documents Caddy capabilities such as automatic HTTPS and HTTP/2 and HTTP/3 support.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Octane worker: Laravel stays in memory

Laravel Octane changes how a Laravel application is served: it boots the application when a worker starts, then reuses that application instance for later requests. Octane can run with FrankenPHP and other supported servers, so “Octane worker” describes an application-serving layer and lifecycle rather than one specific underlying server.

How the request and process models differ

Option What handles the request What persists Operational focus
PHP-FPM A web server typically forwards PHP requests to FPM over FastCGI. FPM manages child processes in pools. Its static, dynamic, or ondemand modes govern how children are managed; pm.max_children caps the number of simultaneous requests served by a pool. Pool sizing, process management, FastCGI listener security, and integration with the front-end web server.
FrankenPHP classic FrankenPHP, built on Caddy, serves the application in classic mode. Classic mode is distinct from FrankenPHP worker mode; do not assume it means a Laravel application instance is reused as an Octane worker. Application-server and Caddy configuration, deployment integration, and application compatibility.
Octane worker Octane serves Laravel through a supported server, which can include FrankenPHP. The booted Laravel application remains in memory and is reused across requests; worker count and request-based recycling are configurable. Persistent-state safety, worker sizing, process supervision, and reloading workers when code changes.

The distinction matters when interpreting a configuration or benchmark. FrankenPHP classic and Octane worker are different modes and layers; using Octane with FrankenPHP does not make classic mode and an Octane worker synonymous. FrankenPHP’s worker-mode documentation and Laravel integration documentation describe those separate capabilities.

When each setup is a practical fit

Keep PHP-FPM when FastCGI fits your existing stack

FPM is a natural fit when your deployment already routes PHP through a FastCGI-capable web server, or when its pool and child-management controls match your operational needs. Pools, logs, status information, and graceful process control are part of FPM’s management model. Check the required PHP extensions and pool configuration for your application rather than treating FPM as a drop-in server configuration.

Consider FrankenPHP classic for direct application-server operation

Classic mode is worth evaluating if you want FrankenPHP/Caddy to serve the application directly and want to use the server features in its documentation. Confirm how it fits your deployment, TLS and proxy arrangement, and application requirements. A feature list is not evidence that it will outperform another architecture on your workload.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Choose Octane when persistent Laravel workers suit the application

Octane is relevant when avoiding repeated application boot work is useful and the codebase can safely run with a long-lived application instance. The trade-off is lifecycle responsibility: request-specific or global state that is not reset can persist into later requests. Octane is therefore not just a server switch; it changes assumptions developers and operators must make about application state.

Persistent workers require state and deployment discipline

Laravel explains that service-provider boot methods run when an Octane worker initially starts, while the same application instance is reused for subsequent requests. Application-created global state may not be reset automatically. Review code that stores request-specific data in long-lived objects, globals, or singletons, and verify that data from one request cannot affect another. Pay particular attention to services and providers whose lifecycle was written with a fresh application instance per request in mind.

Long-running workers also need an explicit deployment lifecycle. Laravel’s deployment guidance recommends reloading or restarting long-lived services after a deployment so they load the new code. For a self-managed Octane deployment, monitor the process and arrange for it to be restarted if it exits. A conventional web server or proxy can still sit in front of Octane to handle TLS termination and static files; adopting Octane does not require removing every front-end server.

Protect FPM’s FastCGI listener

FastCGI access is security-sensitive. The PHP-FPM configuration manual warns that a client able to connect to the listener can influence request configuration, including auto_prepend_file, and potentially execute code. Keep the listener reachable only by trusted local services or networks; do not expose it to untrusted clients. When reviewing an FPM deployment, verify the listener address and network access controls, not just the pool’s worker limits.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

How to compare performance without guessing

The official documentation describes capabilities and intended usage but does not establish a controlled performance winner among PHP-FPM, FrankenPHP classic, and Octane workers. Laravel and FrankenPHP performance-oriented descriptions should not be read as proof of a universal result. Measure the application and deployment you actually plan to run.

  1. Hold the application constant. Use the same application revision, PHP version, extensions, dependencies, database, and cache services for each candidate.
  2. Match the workload. Test the same request mix, data, concurrency, and production-relevant settings. Include the routes and dependencies that drive real traffic rather than relying on a single trivial endpoint.
  3. Keep the environment comparable. Use the same hardware and network conditions, and account for any proxy, TLS, or static-file work that differs between deployments.
  4. Measure the outcomes you care about. Compare response-time distributions, throughput, and resource use under the same conditions; do not infer a result from a feature description alone.
  5. Include operational behavior. For Octane, test state isolation and the deployment reload process as well as request handling. For FPM, validate pool limits and listener protection. For FrankenPHP classic, exercise the intended server configuration.
  6. Report the method with the result. State the workload, concurrency, versions, hardware, and configuration alongside any measurements. Without those details, a benchmark number is difficult to apply to another deployment.

This approach can show whether a change helps your application, but the result applies to the tested setup—not to every PHP project.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.