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.0alpha4 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.5.0alpha4
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.0alpha4-x64NTS.zip (32.38 MiB)
php-8.5.0alpha4-x86NTS.zip (29.04 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.0alpha4-x64TS.zip (32.51 MiB)
php-8.5.0alpha4-x86TS.zip (29.09 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.0alpha4-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.5.0alpha4-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.0alpha4-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.5.0alpha4-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.0alpha4-fpm
ChangeLog
Core
- Add clone-with support to the
clone()
function. - Fix support for non-userland stream notifiers.
- Added
PHP_BUILD_PROVIDER
constant. - Fixed bug GH-19305 (Operands may be being released during comparison).
- Fixed bug GH-19306 (Generator can be resumed while fetching next value from delegated Generator).
- Fixed bug GH-19326 (Calling
Generator::throw()
on a running generator with a non-Generator delegate crashes).
Curl
- Add support for
CURLINFO_CONN_ID
incurl_getinfo()
- Add support for
CURLINFO_QUEUE_TIME_T
incurl_getinfo()
- Add support for
CURLOPT_SSL_SIGNATURE_ALGORITHMS
.
FPM
- Make FPM access log limit configurable using log_limit.
GD
- Fix incorrect comparison with result of
php_stream_can_cast()
.
Intl
- Fix return value on failure for resourcebundle count handler.
- Fixed bug GH-19307 (PGO builds of shared ext-intl are broken).
OPcache
- Disallow changing opcache.memory_consumption when SHM is already set up.
- Fixed bug GH-15074 (Compiling opcache statically into ZTS PHP fails).
- Make OPcache non-optional
- Fixed bug GH-17422 (OPcache bypasses the user-defined error handler for deprecations).
- Fixed bug GH-19301 (opcache build failure).
OpenSSL
- Add $digest_algo parameter to
openssl_public_encrypt()
andopenssl_private_decrypt()
functions.
POSIX
- posix_kill and posix_setpgid throws a ValueError on invalid process_id.
- posix_setpgid throws a ValueError on invalid process_group_id, posix_setrlimit throws a ValueError on invalid soft_limit and hard_limit arguments.
Reflection
- Fixed bug GH-19187 (
ReflectionNamedType::getName()
prints nullable type when retrieved fromReflectionProperty::getSettableType()
).
Session
- Fixed GH-19197: build broken with
ZEND_STRL
usage with memcpy when implemented as macro.
Soap
- Fixed bug GH-19226 (Segfault when spawning new thread in soap extension).
Sockets
socket_set_option
for multicast context throws a ValueError when the socket family is not of AF_INET/AF_INET6 family.
Standard
- Add HEIF/HEIC support to getimagesize.
- Implement #71517 (Implement SVG support for
getimagesize()
and friends). - Optimized PHP html_entity_decode function.
- Minor optimization to
array_chunk()
.
URI
- Empty host handling is fixed.
- Error handling of Uri\WhatWg`Url::withHost()` is fixed when the input contains a port. Now, it triggers an exception; previously, the error was silently swallowed.
- Support empty URIs with Uri\Rfc3986\Uri.
Commit List
Arnaud Le Blanc
- Prevent operands from being released during comparison in bc4b6ce7a8
Christoph M. Becker
- Fix GH-19307: PGO builds of shared ext-intl are broken in 4754d302bf
Daniel Scherzer
ext/standard/
tests/file/bug81145.phpt
: unlink file before exit in GH-19293- Update versions for PHP 8.5.0alpha4 in b1ba26ec10
Florian Engelhardt
- Reset global pointers to prevent use-after-free in 3aaa8d3526
Gina Peter Banyard
- Zend/
zend_exceptions
: Add const modifiers in c9e91bfbab - Zend:
Exception::__toString()
no need to allocate the method name in a95a81000d - ext/
zend_test
: Testzend_call_method_if_exists()
in fc6c49cbf4 - Zend: refactor
zend_call_method_if_exists()
API in 7bac9de94a ext/intl
: Refactor error handling in GH-19196
Ilija Tovilo
- Fix failed assertion with throwing
__toString
in binary const expr in 80022c035b
Niels Dossche
- Fix fuzzer after opcache became mandatory in GH-19292
Remi Collet
- Fix GH-19298 missing libraries for opcache in a9f3e3c44e