Release Information
- 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.19How 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.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-alpineDebian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.4.19-cliPHP 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-alpineDebian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.4.19-apacheDebian-based NTS FPM: PHP-FPM, can be integrated with Nginx, Caddy, and other web servers over Fast CGI.
docker pull php:8.4.19-fpmChangeLog
Core
- Fixed bug GH-21029 (
zend_mm_heapcorrupted on Aarch64, LTO builds). - Fixed bug GH-20657 (Assertion failure in
zend_lazy_object_get_infotriggered by setRawValueWithoutLazyInitialization() and newLazyGhost()). - Fixed bug GH-20504 (Assertion failure in
zend_get_property_guardwhen accessing properties on Reflection LazyProxy viaisset()). - 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_XFERINFOFUNCTIONcrash 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::baseURIcan throw TypeError). - Fixed bug GH-21097 (Accessing Dom\Node properties can can throw TypeError).
MBString
- Fixed bug GH-21223;
mb_guess_encodingno 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_setcpuaffinityon 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 successfulpcre2_compile(), and match_sets/match_data/marks leaks inphp_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.hinclude).
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
- Update versions for PHP 8.4.19 in d4242a6310
David Carlier
- Fix GH-21023:
CURLOPT_XFERINFOFUNCTIONwith 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 b6495c189aext/pgsql: fix GH-21165 unit test in f7af877cfeext/pcntl: fixpcntl_setns()error handling in e2a5909ba3ext/pcntl: Fix cpuset leak inpcntl_setcpuaffinityon out-of-range CPU ID in 37ce67f276ext/pcntl: Fix signal table updated before php_signal4 succeeds inpcntl_signalin 6a1bde5d38ext/pcntl: fixpcntl_signal_dispatch()stale tail pointer and exception handling in 296fad10fbext/pcre:preg_match()fix memory leak with invalid regexes in 6c45f7a000
Dmitry Stogov
- Update IR in GH-21183
- Update IR in GH-21288
- Update IR in 002ae9fab5
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.phptin 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 innightly_matrix.phpin 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.phptomatrix.phpin 37528afdad - Fix nightly ref name in 636fd3453b
- [CI] Fix ineffective ccache in 7a4da1040b
- Tweak stack limit values for
gh20583.phptin 3692a5fa57 - Tweak stack limit values for
gh20840.phptin 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_stringsin 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
- Fix GH-21077: Accessing
Dom\Node::baseURIcan throw TypeError in d73b2f782e - Fix GH-21097: Accessing Dom\Node properties can can throw TypeError(s) in b8fc6bd1c8
- Fix GH-20936:
DatePeriod::__set_state()cannot handle null start in 7445b0f6d9 - Fix timezone offset with seconds losing precision in ee26417b58
- curl: Don't truncate length in e2059a4697
Petr Sumbera
- Improve
shared_alloc_shm.cstrategy to support OPcache JIT on Solaris in 7c6f08945f
武田 憲太郎
- [CI] Use MySQL LTS version in 2a3e970d4c