Release Information
- Release Type
- Bug Fix Release
- Release Status
- QA Release Latest
- Branch Status
- Upcoming Release
PHP 8.5 is a development version, and is not recommended for production use. PHP 8.5 is scheduled to reach General Availability on 2025-11-20. This is the latest QA release in the series.
Downloads
Source Code
Git Clone
Use Git to clone the 8.5.0RC3 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.5.0RC3
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.5.0RC3-x64NTS.zip (32.97 MiB)
php-8.5.0RC3-x86NTS.zip (29.47 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.5.0RC3-x64TS.zip (33.10 MiB)
php-8.5.0RC3-x86TS.zip (29.53 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.5.0RC3-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.5.0RC3-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.5.0RC3-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.5.0RC3-apache
Debian-based NTS FPM: PHP-FPM, can be integrated with Nginx, Caddy, and other web servers over Fast CGI.
docker pull php:8.5.0RC3-fpm
ChangeLog
Core
- Fixed bug GH-20113 (Missing new Foo(...) error in constant expressions).
- Fixed bug GH-19844 (Don't bail when closing resources on shutdown).
- Fixed deprecation for default case statement followed by semicolon not being emitted.
- Fixed bug GH-20177 (Accessing overridden private property in
get_object_vars()
triggers assertion error).
DOM
- Fix getNamedItemNS() incorrect namespace check.
FPM
- Fixed bug GH-19817 (Decode SCRIPT_FILENAME issue in php 8.5).
- Fixed bug GH-19989 (PHP 8.5 FPM access log lines also go to STDERR).
Opcache
- Fixed bug GH-20081 (access to uninitialized vars in
preload_load()
). - Fixed bug GH-20121 (JIT broken in ZTS builds on MacOS 15).
- Fixed bug GH-19875 (JIT 1205 segfault on large file compiled in subprocess).
OpenSSL
- Fixed bug GH-19994 (openssl_get_cipher_methods inconsistent with fetching).
PDO
- Fixed bug GH-20095 (Incorrect class name in deprecation message for PDO mixins).
Phar
- Fix potential buffer length truncation due to usage of type int instead of type size_t.
SPL
- Fixed bug GH-20101 (SplHeap/SplPriorityQueue serialization exposes INDIRECTs).
- Improve
__unserialize()
hardening for SplHeap/SplPriorityQueue.
Tidy
- Fixed GH-19021 (improved tidyOptGetCategory detection).
URI
Commit List
Arnaud Le Blanc
- Upgrade Alpine in push job in 93104e5c59
- Fix access to uninitialized variables in
preload_load()
in ab9d121f48 - Fix JIT TLS on MacOS in 3abebf3e31
- NEWS in e37a207ddd
- NEWS in 43549ea148
Bob Weinand
- Avoid hardcoding the offset for ErrorException specific properties in GH-20096
Daniel Scherzer
- Update versions for PHP 8.5.0RC3 in ad19b3e570
David Carlier
- Fix GH-20106: locale methods catering to stricter C++ rules in f50942068d
- Fix GH-19021: improve tidyOptGetCategory detection in ebbb1b4295
Dmitry Stogov
- Update IR in dd4189da83
- Disable inlining and inter-procedure-analyses for
zend_string_equal_val()
function that may be overriden for valgrind in GH-13099 - Update IR in 191430dc3d
Dylan K. Taylor
- Fix GH-19722: Windows: _get_osfhandle asserts in debug mode when given a socket in 94625a0e4c
Gina Peter Banyard
- Fix GH-20070: Return type violation in imagefilter when an invalid filter is provided in 26f989313e
ext/phar
: use size_t type instead of int in d36109bd71
Ilija Tovilo
- Fix curl 8.16.0 compilation with zts in da75e41a6f
- Fix more curl 8.16 issues in b810a23587
- Backport more curl 8.16 fixes in 1edcce5554
- Fix CGI with auto_globals_jit=0 in 9bc35f1982
- Fix missing new Foo(...) error in constant expressions in 5a63f7a54b
- Don't bail when closing resources on shutdown in e6e39e680e
- Fix accessing of overridden private property in
get_object_vars()
in 02c67b47f7 - Improve
bug60602.phpt
portability in 939b97219d - Create separate workflow for nightly slack notification in 90bc40ecc0
- Revert "Fix Windows test for openssl-3.5 upgrade (#19384)" in 3f6c86a885
Jakub Zelenka
- Fix
curl_setopt_ssl
test for curl 8.16 in 36859ad977 - Update NEWS with info about curl 8.16 compat fixes in 742b7d8e55
- Update NEWS entry for curl 8.16 update in 78a24ffc03
- Fix GH-19817: Decode SCRIPT_FILENAME issue in php 8.5 in GH-20114
- Add missing NEWS entry for FPM GH-19817 fix in d8a7018289
- Fix GH-19974: fpm_status_export_to_zval segfault for parallel execution in 059f9f78e5
- Fix GH-19989: PHP 8.5 FPM access log lines also go to STDERR in 234577ee90
- Fix missing libctx in x509 info read bio in 43970e3c86
- Fix GH-19994: openssl_get_cipher_methods inconsistent with fetched methods in GH-20167
- Update NEWS with info about OpenSSL GH-19994 fix in f60134a3c9
Juliette
- PHP 8.5 | UPGRADING: add missing entries for
FILTER_THROW_ON_FAILURE
RFC in GH-20237 - PHP 8.5 | UPGRADING: fix entry about new grapheme
$locale
parameter in GH-20239
Niels Dossche
- Fix curl build failure on macOS+curl 8.16 in 1c8363d2bf
- Fix GH-20073: Assertion failure in WeakMap offset operations on reference in b16761ec11
- Fix GH-20085: Assertion failure when combining lazy object get_properties exception with foreach loop in 27035eb01e
- Fix
Randomizer::__serialize()
wrt INDIRECTs in c5fa7696e6 - Fix GH-20101: SplHeap/SplPriorityQueue serialization exposes INDIRECTs in 0458b3c8db
- Regenerate
zend_vm_execute.h
in a07d257790 - Improve
__unserialize()
hardening for SplHeap/SplPriorityQueue in bc76b3fca9 - Fix arginfo/zpp violations when LIBXML_SCHEMAS_ENABLED is not available in 40f4091256
- phar: Fix memory leak of argument in webPhar in da39975001
- phar: Fix memory leak when setAlias() fails in 9216b8be8b
- Partially fix GH-16317: SimpleXML does not allow
__debugInfo()
overrides to work in efa1fafc2f - Fix memory leak in
phar_parse_zipfile()
error handling in 416386acc4 - Fix GH-20088: Heap-use-after-free in PHP URI WHATWG parser during malformed URL processing in bdf1bcc8d4
- phar: Reduce code duplication wrt error handling in
phar_parse_zipfile()
in f9aeb9e57c - Update
SKIPIF
for bug #67563 (#20133) in 8a21d62c28 - phar: Fix file descriptor/memory leak when opening central fp fails in c89f25bf69
- Partially fix GH-16317: DOM classes do not allow
__debugInfo()
overrides to work in 8e0504c38b - Add forgotten NEWS item in 390e24397a
- phar: Fix more alias memory leaks in b529c77094
- phar: Fix memleak+UAF when opening temp stream in buildFromDirectory() fails in 5a7c84f274
- Fix shm corruption with coercion in options of
unserialize()
in 88f8c5c0bb - Fix not thread safe RelaxNG invocations in ZTS builds in 75d8449d1f
- Wrap the normally lazy-initialized components in ZTS in f3cb9a81fb
- exif: Fix possible memory leak when tag is empty in 56af25cc1c
- Fix GH-8978: MySQLi: SSL certificate verification fails (port doubled) in 472f2fe0a3
- Fix getNamedItemNS() incorrect namespace check in 8392633f97
- Fix GH-20122: getColumnMeta() for JSON-column in MySQL in 94284df7b2
- Fix test on 8.4+ in 1570f6a6b2
- Fix test on 8.4+ in GH-20196
- intl: Fix memory leak on error in
locale_filter_matches()
in 28ce1b04ef - pgsql: Fix memory leak when first string conversion fails in cf3b70d23c
- phar: Fix memory leak when openssl polyfill returns garbage in 020bbea8fd
- Fix merge issue in fba06d836a
- phar: Fix file descriptor leak in
phar_zip_flush()
on failure in cc83761416 - phar: Fix memory leak when opening temp file fails while trying to open gzip-compressed archive in ce0df1a9d8
Remi Collet
- ensure test passes with prod config in 9f55c1ae1c
- ensure test passes with prod config in 2f4b8e691a
Shivam Mathur
- Skip
lc_ctype_inheritance.phpt
on macos 15+ in 2f2fb1fbf1 - Fix Windows test for openssl-3.5 upgrade in GH-19384
SpencerMalone
- Fix not thread safe xmlSchemaParse calls in ZTS builds in f14e5fcfbd
Theodore Brown
- Fix missing deprecation message for default case statement followed by semicolon in GH-20172
Tim Düsterhus
- uri: Simplify memory-management in
php_uri_parse()
in GH-19928 - pdo: Fix scope for PDO mixins in
pdo_hash_methods()
in GH-20200 - uri: Make
uri_parser_rfc3986.h
usable for external extensions in GH-20173 - github: Bust the nightly CI cache on Sunday instead of Monday in GH-20242
- uri: Make
php_uri_parser
structs PHPAPI in GH-20243