Download, Build, and Run PHP 8.4 Alpha (8.4.0alpha1) on Linux, Windows, and Docker
This guide explains how to download, compile, and run the PHP 8.4 alpha (8.4.0alpha1) release on Linux, Windows, and Docker, and lists the new BCMath functions, core enhancements, and bug fixes included in this pre‑GA version.
Overview
PHP 8.4 is the active development branch that introduces new features, major changes, and RFCs, targeting a full release in 2024. The first GA version is scheduled for 2024‑11‑21, and the branch is not yet GA‑ready for production.
Download
Official download directory: https://downloads.php.net/~saki/
Clone the 8.4.0alpha1 tag from the PHP source repository:
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.4.0alpha1Compilation
To build PHP from source, run the following steps:
Generate the configure script: ./buildconf Configure the build: ./configure Compile:
makeWindows binaries
Non‑Thread‑Safe (NTS) builds
NTS builds are single‑threaded and suitable for FastCGI servers such as Nginx, Caddy, or IIS.
https://windows.php.net/downloads/qa/php-8.4.0alpha1-nts-Win32-vs17-x64.zip
https://windows.php.net/downloads/qa/php-8.4.0alpha1-nts-Win32-vs17-x86.zip
Thread‑Safe (TS) builds
TS builds are multi‑threaded and typically used when PHP is loaded as an Apache module.
https://windows.php.net/downloads/qa/php-8.4.0alpha1-Win32-vs17-x64.zip
https://windows.php.net/downloads/qa/php-8.4.0alpha1-Win32-vs17-x86.zip
Docker / Podman containers
PHP CLI only
CLI‑only images are available for Alpine (lightweight, musl‑based) and Debian (full‑featured, more compatible).
Alpine: docker pull php:8.4.0alpha1-cli-alpine Debian:
docker pull php:8.4.0alpha1-cliPHP CLI + Web server integration
Images that bundle PHP CLI with a web server (FPM or Apache) are provided.
Alpine FPM: docker pull php:8.4.0alpha1-fpm-alpine Debian ZTS Apache: docker pull php:8.4.0alpha1-apache Debian NTS FPM:
docker pull php:8.4.0alpha1-fpmChange log
BCMath
New functions bcfloor, bcceil, and bcround added (RFC proposal).
Performance improvements.
Core
Added zend_call_stack_get implementation for NetBSD, DragonFlyBSD, Solaris, and Haiku.
Enabled ifunc checks on FreeBSD 12.x.
Changed types of PHP_DEBUG and PHP_ZTS constants to boolean.
Fixed GH‑13142 where variable names containing \0 were truncated.
Fixed GH‑13178 iterator position after converting packed arrays to hash arrays.
Fixed Solaris 32‑bit default mode zend fiber build.
Fixed zend call‑stack size on macOS/arm64.
Added support for Zend maximum execution timer on FreeBSD.
Ensured fiber stack is not affected by Transparent Huge Pages.
Implemented GH‑13609 dump of wrapped objects in WeakReference class.
Added SPARC64 assembly support for zend fiber.
Fixed GH‑13581 insufficient TLS space on NetBSD.
Added Sys‑V loongarch64 fiber support.
Adjusted closure names to include parent function name.
Improved randomness of uploaded file names created via tempnam().
Added GC and shutdown callbacks to custom zend_mm handlers.
Fixed GH‑14650 page‑size calculation before memory allocation.
Fixed GH‑11928 missing -g flag when enabling --enable-re2c-goto.
Introduced #[Deprecated] attribute.
Fixed GH‑11389 allowing fiber suspension in destructors.
Open Source Tech Hub
Sharing cutting-edge internet technologies and practical AI resources.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
