PHP 8.5.0alpha4: Downloads, Changelog, News

Release Information

Release
8.5.0alpha4
PHP Version
PHP 8.5
Release Date
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 (./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.
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.

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 in curl_getinfo()
  • Add support for CURLINFO_QUEUE_TIME_T in curl_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() and openssl_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 from ReflectionProperty::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

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: Test zend_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

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.