PHP 8.4.19: Downloads, Changelog, News

Release Information

Release
8.4.19
PHP Version
PHP 8.4
Release Date
Release Type
Bug Fix Release
Release Status
Latest Release in 8.4
Branch Status
Supported

Latest release for PHP 8.4.
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.19 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.4.19
How to compile PHP
PHP can be compiled by setting up the dependencies, building the configure script (./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.19-x64NTS.zip
SHA256: 1e26901fdb155d49a1a0eb8a0167a4f8528c0c700ae62e8af1c48230b68af1d9
php-8.4.19-x86NTS.zip
SHA256: 9672ef9929dbd0f3cbf6500af8cc0e15226cb801e91fbc5f5e25fb630d0ab873
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.19-x64TS.zip
Size: 0 MiB SHA256: 145712ab250a8a1855ade60b7ce8dbe177064f61f31c3edda8cb2af8400e1e8f
php-8.4.19-x86TS.zip
Size: 0 MiB SHA256: 2a9289593fb26dff8c45fb370c766bb0b661c22bffcf2bee09da33b706a7790b

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.19-cli-alpine

Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.4.19-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.19-fpm-alpine

Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.4.19-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.19-fpm

ChangeLog

Core

  • Fixed bug GH-21029 (zend_mm_heap corrupted on Aarch64, LTO builds).
  • Fixed bug GH-20657 (Assertion failure in zend_lazy_object_get_info triggered by setRawValueWithoutLazyInitialization() and newLazyGhost()).
  • Fixed bug GH-20504 (Assertion failure in zend_get_property_guard when accessing properties on Reflection LazyProxy via isset()).
  • Fixed OSS-Fuzz #478009707 (Borked assign-op/inc/dec on untyped hooked property backing value).
  • Fixed bug GH-21215 (Build fails with -std=).
  • Fixed bug GH-13674 (Build system installs libtool wrappers when using slibtool).

Curl

  • Fixed bug GH-21023 (CURLOPT_XFERINFOFUNCTION crash with a null callback).
  • Don't truncate length.

Date

  • Fixed bug GH-20936 (DatePeriod::__set_state() cannot handle null start).
  • Fix timezone offset with seconds losing precision.

DOM

  • Fixed bug GH-21077 (Accessing Dom\Node::baseURI can throw TypeError).
  • Fixed bug GH-21097 (Accessing Dom\Node properties can can throw TypeError).

MBString

  • Fixed bug GH-21223; mb_guess_encoding no longer crashes when passed huge list of candidate encodings (with 200,000+ entries).

Opcache

  • Fixed bug GH-20718 ("Insufficient shared memory" when using JIT on Solaris).
  • Fixed bug GH-21227 (Borked SCCP of array containing partial object).
  • Fixed bug GH-21052 (Preloaded constant erroneously propagated to file-cached script).

OpenSSL

  • Fix a bunch of leaks and error propagation.

PCNTL

  • Fixed pcntl_setns() internal errors handling regarding errnos. (David Carlier/ndossche)
  • Fixed cpuset leak in pcntl_setcpuaffinity on out-of-range CPU ID on NetBSD/Solaris platforms.
  • Fixed pcntl_signal() signal table registering the callback first OS-wise before the internal list.
  • Fixed pcntl_signal_dispatch() stale pointer and exception handling.

PCRE

  • Fixed preg_match memory leak with invalid regexes.
  • Fixed pcre2_code leak when pcre2_pattern_info() fails after a successful pcre2_compile(), and match_sets/match_data/marks leaks in php_pcre_match_impl().

PDO_PGSQL

  • Fixed bug GH-21055 (connection attribute status typo for GSS negotiation).

PGSQL

  • Fixed bug GH-21162 (pg_connect() memory leak on error).

Sockets

  • Fixed bug GH-21161 (socket_set_option() crash with array 'addr' entry as null).
  • Fixed possible addr length overflow with socket_connect() and AF_UNIX family sockets.

Windows

  • Fixed compilation with clang (missing intrin.h include).

Commit List

Arnaud Le Blanc

  • Add missing clobbered registers in 93d32eae27
  • Mark object non-lazy before deleting info in zend_lazy_object_realize() in 6d6d013d79
  • Real instance of lazy proxy may have less magic methods in de26827275
  • Fix build with -std= in ede7c67389

Calvin Buckley

David Carlier

  • Fix GH-21023: CURLOPT_XFERINFOFUNCTION with invalid callback crash in b156471a30
  • Fix GH-21161: socket_set_option() crash with array 'addr' entry as null in 19ee3e6697
  • Fix GH-21162: pg_connect() on error memory leak in 539c5d9f76
  • ext/sockets: socket_sendto() add max addr length control for AF_UNIX in b6495c189a
  • ext/pgsql: fix GH-21165 unit test in f7af877cfe
  • ext/pcntl: fix pcntl_setns() error handling in e2a5909ba3
  • ext/pcntl: Fix cpuset leak in pcntl_setcpuaffinity on out-of-range CPU ID in 37ce67f276
  • ext/pcntl: Fix signal table updated before php_signal4 succeeds in pcntl_signal in 6a1bde5d38
  • ext/pcntl: fix pcntl_signal_dispatch() stale tail pointer and exception handling in 296fad10fb
  • ext/pcre: preg_match() fix memory leak with invalid regexes in 6c45f7a000

Dmitry Stogov

Giovanni Giacobbi

  • gen_stub: Fix compatibility with php 7.4 (in PHP-8.4) in GH-21076

Ilija Tovilo

  • Tweak zend.max_allowed_stack_size for gh20836_stack_limit.phpt in 1f57d04648
  • Make brew verbose, limit to 10 minutes in 8b47ae8342
  • Fix assign-op/inc/dec on untyped hooked property backing value in 3cb85cc681
  • Fix OSS-Fuzz #478009707 for JIT in bbde9c8178
  • Disable pkg cache for FreeBSD jobs in 10aadd635b
  • Unify push & nightly workflows in f7b58d3938
  • Fix array_column() on null in nightly_matrix.php in 60718c7f43
  • Fix borked SCCP of array containing partial object in 1931472f22
  • Fix enabling of opcache in CI in 5150641f9a
  • Fix test action with no opcache in 2fd40628fc
  • Fix ccache in pecl job in a1de4ad543
  • Fix nightly job selection in cb4ea1d38a
  • Move benchmarking job to nightly in 436000755b
  • Rename nightly.yml to test-suite.yml in bcbc9c2f00
  • Rename push.yml to test.yml in dca6e5efd3
  • Combine push.yml and root.yml into test.yml in 12148a5b49
  • Improve displayed workflow_call name in cbb3ff0a5b
  • Adjust nightly-results.yml for test.yml in be96ae607d
  • Rename nightly_matrix.php to matrix.php in 37528afdad
  • Fix nightly ref name in 636fd3453b
  • [CI] Fix ineffective ccache in 7a4da1040b
  • Tweak stack limit values for gh20583.phpt in 3692a5fa57
  • Tweak stack limit values for gh20840.phpt in f07809f495
  • Fix ccache for coverage and pecl builds in c8cd3aeb1e
  • Fix coverage label job selection in ee40ca3fe2
  • Fix ccache for alpine and msan in 68d4ee357b
  • Fix benchmarking head sha in 46073db990
  • Fix preloaded constant erroneously propagated to file-cached script in ec5a1e001d

Jordi Kroon

  • replace alloca with do_alloca in mb_guess_encoding_for_strings in 37c5a13d67

Kévin Dunglas

  • Zend/zend_call_stack.h: fix missing include on Windows (clang compat) in GH-20847

Loïc Saos

  • Fix GH-21055: Pdo/Pgsql typo for GSS negotiation connection status attribute in 3037526810

Michael Orlitzky

  • sapi/*/Makefile.frag: install programs built with libtool, with libtool in db6cca26dd

ndossche

  • Update EXTENSIONS to reflect reality in 84bfe2fadd
  • Fix memory leak in php_openssl_load_all_certs_from_file() when push fails in 4b9e80eae9
  • Fix memory leaks in php_array_to_X509_sk() when push fails in 01d598aea3
  • Fix missing error propagation when php_array_to_X509_sk() fails in ef54becb3e
  • Fix memory leaks in openssl_pkcs7_encrypt() when push fails in 556ec77951
  • Fix memory leaks in openssl_cms_encrypt() when push fails in f6887f04f6

Niels Dossche

Petr Sumbera

  • Improve shared_alloc_shm.c strategy to support OPcache JIT on Solaris in 7c6f08945f

武田 憲太郎

Subscribe to PHP.Watch newsletter for monthly updates

You will receive an email on last Wednesday of every month and on major PHP releases with new articles related to PHP, upcoming changes, new features and what's changing in the language. No marketing emails, no selling of your contacts, no click-tracking, and one-click instant unsubscribe from any email you receive.