Installation
Requirements
- PHP with ZTS support compatible with FrankenPHP.
- FrankenPHP and Caddy module build tooling.
xcaddyfor compiling custom modules.- CGO enabled during builds.
- Composer for PHP framework packages.
- Redis for production queue deployments and optional WebSocket fanout.
The current modules target FrankenPHP 1.12.x and Caddy 2.11.x. The shared build examples use FrankenPHP v1.12.4, which matches the current WebSocket module dependency when compiling all plugins together.
Install build tooling
Install xcaddy:
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
Confirm it is available:
xcaddy version
Choose plugins
You can compile one plugin or all plugins into the same FrankenPHP binary.
| Plugin | Go module |
|---|---|
| Queue | github.com/y-l-g/queue/module |
| Scheduler | github.com/y-l-g/scheduler/module |
| Pogo | github.com/y-l-g/pogo/module |
| Upload | github.com/y-l-g/upload/module |
| WebSocket | github.com/y-l-g/websocket/module |
Continue with Building FrankenPHP for complete build examples.
Install PHP packages
Install only the packages your application needs:
composer require pogo/laravel-queue
composer require pogo/symfony-queue
composer require pogo/websocket
The Composer packages do not compile native modules. They provide framework integration for a FrankenPHP binary that already includes the matching plugin.
Pogo and Upload currently expose native PHP functions directly. They do not ship framework packages in these repositories yet.
Start FrankenPHP
Run with your Caddyfile:
frankenphp run --config Caddyfile
Laravel Octane users can also pass a Caddyfile to FrankenPHP:
php artisan octane:frankenphp --caddyfile=Caddyfile