Pre-built PHP binaries and Docker images with native async/coroutine support via the TrueAsync extension.
docker pull trueasync/php-true-async:latest
docker run --rm trueasync/php-true-async:latest php -vEach image includes both php (CLI) and php-fpm. All images are multi-arch: linux/amd64 and linux/arm64 — Docker picks the right variant automatically.
Available tags:
| Tag | Base | Arch | Description |
|---|---|---|---|
latest |
Ubuntu 24.04 | amd64 + arm64 | Latest stable, cli + fpm |
latest-alpine |
Alpine edge | amd64 + arm64 | Lightweight, cli + fpm |
latest-frankenphp |
Ubuntu 24.04 | amd64 + arm64 | FrankenPHP — Caddy + async PHP worker |
latest-debug |
Ubuntu 24.04 | amd64 | Debug build with symbols |
{version}-php{ver} |
Ubuntu 24.04 | amd64 + arm64 | Pinned release, e.g. 0.7.0-php8.4 |
{version}-php{ver}-alpine |
Alpine edge | amd64 + arm64 | Pinned alpine release |
{version}-php{ver}-frankenphp |
Ubuntu 24.04 | amd64 + arm64 | Pinned FrankenPHP release |
TrueAsync Server is a native PHP extension that runs a high-performance HTTP server directly inside PHP — no reverse proxy, no external daemon, no separate process.
A single $server->start() call serves HTTP/1.1, HTTP/2, and HTTP/3 (QUIC) over the same port via ALPN negotiation, driven by the TrueAsync event loop. WebSocket, SSE, and gRPC are planned.
use TrueAsync\HttpServer;
use TrueAsync\HttpServerConfig;
$server = new HttpServer(
(new HttpServerConfig())
->addListener('0.0.0.0', 8080)
->setWorkers(4)
);
$server->addHttpHandler(function ($request, $response) {
$response->setStatusCode(200)->setBody('Hello, World!');
});
$server->start();See true-async/server for installation and full documentation.
curl -fsSL https://raw.githubusercontent.com/true-async/releases/master/installer/build-linux.sh | bashAn interactive wizard will guide you through the build configuration: extensions, FrankenPHP, debug mode, install path, and PATH setup.
For non-interactive use (CI/scripts):
# Standard build
curl -fsSL https://raw.githubusercontent.com/true-async/releases/master/installer/build-linux.sh | \
NO_INTERACTIVE=true EXTENSIONS=all SET_DEFAULT=true bash
# With FrankenPHP
curl -fsSL https://raw.githubusercontent.com/true-async/releases/master/installer/build-linux.sh | \
NO_INTERACTIVE=true EXTENSIONS=all BUILD_FRANKENPHP=true SET_DEFAULT=true bashSupported distros: Ubuntu, Debian (apt-based).
curl -fsSL https://raw.githubusercontent.com/true-async/releases/master/installer/build-macos.sh | bashRequires Homebrew. Supports both Apple Silicon (ARM) and Intel Macs.
For non-interactive use:
# Standard build
curl -fsSL https://raw.githubusercontent.com/true-async/releases/master/installer/build-macos.sh | \
NO_INTERACTIVE=true EXTENSIONS=all SET_DEFAULT=true bash
# With FrankenPHP
curl -fsSL https://raw.githubusercontent.com/true-async/releases/master/installer/build-macos.sh | \
NO_INTERACTIVE=true EXTENSIONS=all BUILD_FRANKENPHP=true SET_DEFAULT=true bashQuick install (PowerShell):
irm https://raw.githubusercontent.com/true-async/releases/master/installer/install.ps1 | iexManual install:
- Go to Releases
- Download the archive:
- Release — for general use
- Debug — for PHP/extension development (includes debug symbols and assertions)
- Verify the SHA256 checksum from
sha256sums.txt - Extract to your preferred location
- Add the directory to your PATH
The build-from-source scripts (build-linux.sh, build-macos.sh) support these options:
| Option | Env Variable | Default | Description |
|---|---|---|---|
--prefix DIR |
INSTALL_DIR |
$HOME/.php-trueasync |
Installation directory |
--set-default |
SET_DEFAULT=true |
false |
Add to PATH as default php |
--debug |
DEBUG_BUILD=true |
false |
Build with debug symbols |
--extensions PRESET |
EXTENSIONS |
standard |
Extension preset: standard, xdebug, all (see below) |
--no-xdebug |
NO_XDEBUG=true |
false |
Exclude Xdebug from build |
--frankenphp |
BUILD_FRANKENPHP=true |
false |
Build FrankenPHP binary (Caddy-based async server) |
--no-latest-curl |
BUILD_LATEST_CURL=false |
true |
Skip building libcurl 8.12.0 (async uploads fallback) |
--jobs N |
BUILD_JOBS |
auto | Parallel make jobs |
--branch NAME |
PHP_BRANCH |
from config | Override php-src branch |
--no-interactive |
NO_INTERACTIVE=true |
false |
Skip interactive wizard |
Extension presets (--extensions):
| Preset | Xdebug | Description |
|---|---|---|
standard |
No | async + core PHP extensions |
xdebug |
Yes | standard + Xdebug debugger |
all |
Yes | everything (same as xdebug) |
FrankenPHP is opt-in via --frankenphp / BUILD_FRANKENPHP=true regardless of the preset. Requires Go 1.26+ (installed automatically if not found).
By default, the installer builds libcurl 8.12.0 from source. This is required for fully async file uploads — libcurl >= 8.11.1 fixes PAUSE/unpause bugs (curl#15627) that caused intermittent timeouts. Use --no-latest-curl to skip this and use the system libcurl (async uploads will fall back to synchronous reads).
TrueAsync PHP is not added to PATH by default to avoid conflicts with your system PHP. Use --set-default to make it the default php.
After installation, use the php-trueasync command:
php-trueasync rebuild # Rebuild from latest source
php-trueasync version # Show installed version
php-trueasync uninstall # Remove TrueAsync PHPphp -v
php -m | grep async| Extension | Description |
|---|---|
| async | TrueAsync coroutine engine with libuv reactor |
| xdebug | Debugger and profiler (optional) |
Standard PHP extensions: curl, mbstring, openssl, pdo, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, sockets, and more.
| Platform | Method | Variants | Status |
|---|---|---|---|
| Linux | Docker (amd64) | Ubuntu 24.04, Alpine edge, FrankenPHP | ✅ |
| Linux | Docker (arm64) | Ubuntu 24.04, Alpine edge, FrankenPHP | ✅ |
| Linux | Build from source | Ubuntu/Debian (apt) | ✅ |
| macOS | Build from source | ARM + Intel (Homebrew) | ✅ |
| Windows | Pre-built binaries | Release, Debug (x64) | ✅ |
Build parameters are defined in build-config.json:
- PHP source repository and branch
- Extensions to include
- Configure flags per platform
- TrueAsync Server — native HTTP/1.1, HTTP/2, HTTP/3 server as a PHP extension
- Docker Hub — Docker images
- TrueAsync PHP Source — PHP fork with async API
- TrueAsync Extension — libuv-based async implementation
- TrueAsync Xdebug — Xdebug with async support
- TrueAsync FrankenPHP — FrankenPHP fork with async worker support
MIT