PHP 8.4.22: Downloads, Changelog, News

Release Information

Release
8.4.22
PHP Version
PHP 8.4
Release Date
Release Type
Security Update
Release Status
Latest Release in 8.4
Branch Status
Supported

Latest release for PHP 8.4. This release contains security fixes, and it is recommended to update as soon as possible.
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.22 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.4.22
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.22-x64NTS.zip
SHA256: f661da9a4a6b7992a8e801ec7441ee22a2b5a6cd0ff178559a81427c9803f45a
php-8.4.22-x86NTS.zip
SHA256: 2fd73580517832e8d8a51f010493949a07fe587bf29e2a2ec039992e68c92bd8
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.22-x64TS.zip
Size: 0 MiB SHA256: dd7a716bbac734cc7f2f9a9d86aa678e2ae6f83a612b0a8ab1ac186b494d619f
php-8.4.22-x86TS.zip
Size: 0 MiB SHA256: 74561072e537fc7dd8b8c98eee74e9348aa7534c2797c98fd7476a21f98595e2

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

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

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

ChangeLog

Date

  • Fixed bug GH-18422 (int overflow in php_date_llabs).

Intl

  • Fix incorrect argument positions in out-of-bounds errors for IntlCalendar::set(), IntlCalendar::setDate(), IntlCalendar::setDateTime(), and IntlGregorianCalendar date/time construction.
  • Expose Spoofchecker restriction-level APIs on all supported ICU versions.
  • Fix SpoofChecker::setAllowedChars() and IntlDateFormatter::__construct() to report PHP constant names instead of ICU constant names in user-visible error messages.

MySQLnd

  • Fix persistent free of non-persistent connect_attr key

Opcache

  • Fixed tracing JIT crash when a VM interrupt is handled during an observed user function call.
  • Fixed bug GH-22004 (Assertion failure at ext/opcache/jit/zend_jit_trace.c).

OpenSSL

  • Fix compatibility issues with OpenSSL 4.0.

Phar

  • Fixed bug GH-21986 (PharData::getContent() crash on infinite recursion with symlinks).

SOAP

  • Fixed integer overflow when decoding SOAP array indexes.

SPL

  • Fix SplFixedArray::setSize leak when destructor grows during clear.
  • Fixed bug GH-21933 (use after free of self-freeing MultipleIterator children).

Standard

  • Fixed bug GH-21689 (version_compare() incorrectly handles versions ending with a dot).
  • Fixed ip2long() leading zeros handling inconsistency on AIX.

Commit List

Arnaud Le Blanc

  • Fix compiler warning with GCC 16: variable 'offset' set but not used [-Werror=unused-but-set-variable=] in ac86e10468
  • Fix compiler warning with glibc 2.43 support of C23 const-preserving standard library macros: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers] in 6a27514509
  • JIT: Fix TSSA of ZEND_FE_FETCH_R with key operand in ef589ce669
  • Fix compiler warning with glibc 2.43 support of C23 const-preserving standard library macros: assignment discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers] in 3a8307d3e5

David Carlier

  • Fix GH-21544: Dom\XMLDocument::C14N() drops namespace declarations on DOM-built documents in d43c523c48
  • ext/spl: Fix SplFixedArray::setSize leak when destructor grows during clear in cb3dc62fd9
  • Fix GH-21927: Use-after-free of self-freeing MultipleIterator children in 71926644bb
  • ext/mysqlnd: Fix persistent free of non-persistent connect_attr key in 6e87107575
  • ext/xml: Use zend_string_safe_realloc() for cdata concatenation in d5a57af4e2

Dmitry Stogov

  • Update IR in GH-22019
  • Fix COMMUNITY_asan failure on src/Symfony/Component/HttpClient in GH-22021

Ilia Alshanetsky

Ilija Tovilo

Jakub Zelenka

Levi Morrison

Michael Orlitzky

  • ext/gd: fix gh16559 and gh17349 tests in 37bb1c39a9

Reshma V Kumar

  • ext/standard: Fix ip2long in AIX to treat IPs with leading zeros as invalid like LINUX in e88e04909c

Saki Takamachi

Shivam Mathur

  • Preserve full XMM registers in Windows VM wrapper in GH-21976

Tim Düsterhus

  • zend_compile: Fix incorrect use of ZVAL_NEW_STR() in zend_compile_call() in GH-21851
  • version_compare: Fix handling of version numbers with a trailing dot in GH-21689
  • GHSA-96wq-48vp-hh57: [metaphone] Fix signed integer overflow of char array offset in 47def8ce1d

vi3tL0u1s

“LamentXU123”

  • ext/intl: Fix out-of-bounds argument positions in calendar date/time APIs in 10704f079f
  • ext/intl: Expose Spoofchecker restriction-level APIs on all supported ICU versions in 4f947157b7
  • ext/intl: use PATTERN constant name in dateformat errors in 2d784891ff
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.