Release Information
- Release Type
- Bug Fix Release
- Release Status
- Latest
- Branch Status
- Supported (Latest)
Latest PHP release in the latest version.
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.13 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.4.13
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.13-x64NTS.zip (31.94 MiB)
php-8.4.13-x86NTS.zip (28.62 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.13-x64TS.zip (32.09 MiB)
php-8.4.13-x86TS.zip (28.68 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.13-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.4.13-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.13-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.4.13-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.13-fpm
ChangeLog
Core
- Fixed bug GH-18850 (Repeated inclusion of file with
__halt_compiler()
triggers "Constant already defined" warning). - Partially fixed bug GH-19542 (Scanning of string literals >=2GB will fail due to signed int overflow).
- Fixed bug GH-19544 (GC treats
ZEND_WEAKREF_TAG_MAP
references as WeakMap references). - Fixed bug GH-19613 (Stale array iterator pointer).
- Fixed bug GH-19679 (
zend_ssa_range_widening
may fail to converge). - Fixed bug GH-19681 (
PHP_EXPAND_PATH
broken with bash 5.3.0). - Fixed bug GH-19720 (Assertion failure when error handler throws when accessing a deprecated constant).
CLI
- Fixed bug GH-19461 (Improve error message on listening error with IPv6 address).
Date
- Fixed
date_sunrise()
anddate_sunset()
with partial-hour UTC offset.
DBA
- Fixed bug GH-19706 (dba stream resource mismanagement).
DOM
- Fixed bug GH-19612 (Mitigate libxml2 tree dictionary bug).
FPM
- Fixed failed debug assertion when
php_admin_value
setting fails.
Intl
- Fixed bug GH-11952 (Fix locale strings canonicalization for IntlDateFormatter and NumberFormatter).
Opcache
- Fixed bug GH-19493 (JIT variable not stored before YIELD).
OpenSSL
- Fixed bug GH-19245 (Success error message on TLS stream accept failure).
PGSQL
- Fixed bug GH-19485 (potential use after free when using persistent pgsql connections).
Phar
- Fixed memory leaks when verifying OpenSSL signature.
- Fix memory leak in phar tar temporary file error handling code.
- Fix metadata leak when phar convert logic fails.
- Fix memory leak on failure in
phar_convert_to_other()
. - Fixed bug GH-19752 (Phar decompression with invalid extension can cause UAF).
Standard
- Fixed bug GH-16649 (UAF during
array_splice
). - Fixed bug GH-19577 (Avoid integer overflow when using a small offset and
PHP_INT_MAX
with LimitIterator).
Streams
- Remove incorrect call to
zval_ptr_dtor()
inuser_wrapper_metadata()
. - Fix OSS-Fuzz #385993744.
Zip
- Fix memory leak in zip when encountering empty glob result.
Commit List
Alexandre Daubois
- Fix GH-16649: Avoid UAF when using
array_splice
in c8774f9e61 - Fix GH-19577: avoid integer overflow when using a small offset and
PHP_INT_MAX
with LimitIterator in GH-19585 - Add NEWS missing entry in f0c531597c
- Fix GH-19461: Improve error message on listening error with IPv6 in GH-19462
- Fix NEWS entry order in 0e668e517a
- Fix GH-11952: better locale strings canonicalization for IntlDateFormatter and NumberFormatter in GH-19593
- Fix intl tests naming in GH-19763
- Fix memory leak when providing an invalid locale to IntlDateFormatter in GH-19764
Arjen de Korte
- Fix GH-19021: deprecation for tidyOptIsReadOnly in a97717d23e
Arnaud Le Blanc
- Fit JIT variable not stored before YIELD in bc05bfe7c5
- Differenciate WeakMaps from bare HashTables used as weak maps for GC purposes in d74901ae1a
- Ensure that type widening converges in bd88a54934
Calvin Buckley
- Update versions for PHP 8.4.13 in 3e1a564f92
David Carlier
- Fix GH-19578: imagefilledellipse underflow on width argument in 93865a4086
Dmitry Stogov
- Added test for PR GH-19458 in cbb9ee8f5b
- Update IR in 93740d0a82
- Cleanup SSA(s) in case of fatal error during tracing JIT in d59ae9345c
George Wang
- fix pipe detection for STDERR in aa3983b31b
- update LiteSpeed API to V8.3 in ebbed484fb
Gina Peter Banyard
ext/phar
: Fix memory leaks when verifying OpenSSL signature in GH-19563
Ilija Tovilo
- Fix "Constant already defined" warning with repeated inclusion of file with
__halt_compiler()
in a3de2ce9ba - Fix signed int overflow in scanner in 0a12aaa5b8
- Fix
date_sunrise()
anddate_sunset()
with partial-hour UTC offset in 0ae9a58ade - Fix RC assertion in fpm when
php_admin_value
setting fails in 15beb140e5 - Stale array iterator pointer in f9ce6d8f3a
Jakub Zelenka
- Fix GH-19245: Success error message on TLS stream accept failure in 2b415e416e
- Use the default OpenSSL version for MacOS to match libs in 6194084837
Mark Karpeles
- Fix GH-19484 i: potential use after free when using persistent pgsql connections in 987a3a5c8e
Niels Dossche
- Sync lexbor with master on PHP 8.4 in c66af62511
- Fix Windows build in 3690df022b
- Fix GH-19612: Mitigate libxml2 tree dictionary bug in 080fd14458
- Remove incorrect call to
zval_ptr_dtor()
inuser_wrapper_metadata()
in d10ff9bbd8 - Fix memory leak in zip when encountering empty glob result in 216e87ad7e
- Fix GH-19720: Assertion failure when error handler throws when accessing a deprecated constant in 9d69ab91ab
- Fix GH-19706: dba stream resource mismanagement in f744c827a8
- Fix memory leak in phar tar temporary file error handling code in 2f162214e8
- Fix metadata leak when phar convert logic fails in c50b37d231
- Fix memory leak on failure in
phar_convert_to_other()
in 98bb934685 - Fix OSS-Fuzz #385993744 in ff84cb08ef
- Fix GH-19752: Phar decompression with invalid extension can cause UAF in f6878b6ccf
Remi Collet
- Fix GH-19681
PHP_EXPAND_PATH
broken with bash 5.3.0 in 98d2b92324 - NEWS in abbf84083a
- NEWS in 4ee90ea275
Tim Düsterhus
- Update GitHub Action workflows to
actions/checkout@v5
in 2650248a92 - NEWS for d74901ae in 96c0bc55bb