PHP 8.4.0RC4 is an old release of PHP 8.4 series. Using the latest version PHP 8.4.8 is highly recommended.
PHP 8.4 continues to receive bug fixes and security fixes until 2026-12-31.
Downloads
Source Code
Git Clone
Use Git to clone the 8.4.0RC4 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.4.0RC4
How to compile PHP
PHP can be compiled by setting up the dependencies, building the configure script (
Detailed articles on how to compile PHP are available for Ubuntu/Debian based systems and Fedora/RHEL based systems.
./buildconf
), configuring the build ./configure
, and running make
.Detailed articles on how to compile PHP are available for Ubuntu/Debian based systems and Fedora/RHEL based systems.
Windows binaries
Non-Thread Safe Builds
Non-Thread Safe (NTS) builds are single-threaded PHP builds. They can be used on web servers that integrate PHP over FastCGI protocol, such as Nginx, Caddy, and IIS.
php-8.4.0RC4-x64NTS.zip (32.18 MiB)
php-8.4.0RC4-x86NTS.zip (28.87 MiB)
Thread-Safe Builds
Thread-Safe (TS) builds are multi-thread PHP builds, often used to integrate PHP as a Server API for multithreaded servers. The most common use case is using PHP as an Apache module.
php-8.4.0RC4-x64TS.zip (32.33 MiB)
php-8.4.0RC4-x86TS.zip (28.94 MiB)
Docker/Podman Containers
PHP CLI
PHP CLI Containers images only include the PHP CLI, and no FPM or Apache modules. The Alpine builds are lightweight, but may introduce incompatibilities due to their musl builds. Albeit their larger size, the Debian-based (without the "-alpine" suffix) images are more complete, and widely used.
Alpine-based: Lightweight, but may introduce incompatibilities due to their musl builds.
docker pull php:8.4.0RC4-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.4.0RC4-cli
PHP CLI + Web Server Integration
These container images include PHP CLI, and a web server integration. FPM container images can be integrated with web servers such as Nginx, Caddy, and Apache with Event MPM. The Apache container images include Apache web server, integrating PHP as an Apache module.
Alpine-based: Lightweight, but may introduce incompatibilities due to their musl builds.
docker pull php:8.4.0RC4-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.4.0RC4-apache
Debian-based NTS FPM: PHP-FPM, can be integrated with Nginx, Caddy, and other web servers over Fast CGI.
docker pull php:8.4.0RC4-fpm
Commit List
Arnaud Le Blanc
- Fix tests: Prevent stack overflow during dtor in f3e87e2a6d
- Fix assertion failure in
zend_std_read_property
in 3d3b22ddf2 - Add
ReflectionProperty::isLazy()
in 54a40f3bde
Bob Weinand
- Fix test without extra curl features in 824c81602b
Calvin Buckley
- Update versions for PHP 8.4.0RC4 in e51452ed73
Christoph M. Becker
- Dynamically
xfail
test case which fails on CI in bdde797159 - Dynamically
xfail
test case which fails on CI in 7cc327fd5a - Adapt
ext/intl
tests for ICU 75.1 in e111bf72d7 - Fix GH-16450: PDO_ODBC can inject garbage into field values in c9eafc1954
- Properly initialize _override executor globals in ec68d3c608
- Adapt
ext/intl
tests for ICU 76.1 in 3245a65034 - Fix GH-14732:
date_sun_info()
fails for non-finite values in f9453a889d
David Carlier
ext/gmp
: gmp_pow fix FPE with large values in e0a0e216a9- Fix GH-14687 segfault on debugging a freed SplObjectIterator instance in eeec0939e0
- Fix GH-16592
msg_send()
crashes when the type does not serialize as expected in 90aac521fd
Gina Peter Banyard
- Fix GH-16477 (Segmentation fault when calling
__debugInfo
() after failed SplFileObject::__constructor) in 9f5b5e34c3 - Fix GH-16477 (Segmentation fault when calling
__debugInfo
() after failed SplFileObject::__constructor) in a19029fc8b - Fix GH-16477 (Segmentation fault when calling
__debugInfo
() after failed SplFileObject::__constructor) in 5d993e9641 ext/gmp
: Add behavioural tests for operator overloading in fe02fd5095ext/gmp
: Fix segfault when null is encountered on an overloaded operator in 5253647500
Ilija Tovilo
- Fix
gh16508.phpt
test expectation in dded6fdcad - Backport CI fixes to security branches in 25c0993902
- Fix icu dependency for macos build in e3de1a1a21
- Backport nightly.yml and
nightly_matrix.php
to PHP-8.1 in 27e8860594 - [CI] Backport usage of db service for 8.1 in 560a585117
- Partial backport of e7462bf in ed041c3443
- Remove -Werror for libmysql test on 8.1 only in 769947648e
- Fix array going away during sorting in 2bdce61390
- Postpone
zend_array_sort()
in ext-intl in 845cdbce67 - Fix use-after-free in
ArrayObject::unset()
with destructor in 8910ac800d - Also fix same issue in
ArrayObject::exchangeArray()
in f7222bd2de - Add NEWS entry in 418f820f5d
Máté Kocsis
- Fix GH-16131: Prevent mixing PDO sub-classes with different DSN in 5892991941
- Fix GH-16314 "Pdo\Mysql object is uninitialized" when opening a persistent connection in GH-16369
Niels Dossche
- Fix GH-16559: UBSan abort in
ext/gd/libgd/gd_interpolation.c:1007
in e1e1e64a32 - Fix GH-16574: Incorrect error "undefined method" messages in e9283c0819
- Fix GH-16588: UAF in Observer->serialize in 144d2ee29a
- Fix GH-16591: Assertion error in shm_put_var in 992ac1c25a
- Fix GH-16589: UAF in SplDoublyLinked->serialize() in 8f60309a78
- Fix GH-16577: EG(strtod_state).freelist leaks with opcache.preload in 757781a142
- Fix GH-16572: Incorrect result with reflection in low-trigger JIT in 38e1b0ac8c
- Fix GH-16594: Assertion failure in DOM -> before in 947e319b76
- Fix GH-16593: Assertion failure in DOM->replaceChild in d89dd28d3b
- Fix GH-16595: Another UAF in DOM -> cloneNode in 9d8983c061
- Fix static analysis warning in 65fbf47472
- Add missing cache invalidation for innerHTML in GH-16652
- Fix GH-16604: Memory leaks in SPL constructors in 886a5287ca
- Fix GH-16601: Memory leak in Reflection constructors in f0f666ba3f
- Fix GH-16628: FPM logs are getting corrupted with this log statement in e643129bbb
- Fix various memory leaks on error conditions in
openssl_x509_parse()
in 5ddb75660d - Fix GH-16590: UAF in
session_encode()
in cc39bc21e3