PHP 8.4.0RC3: Downloads, Changelog, News

Release Information

Release
8.4.0RC3
PHP Version
PHP 8.4
Release Date
Release Type
Bug Fix Release
Release Status
Use PHP 8.4.3 instead
Branch Status
Supported (Latest)

PHP 8.4.0RC3 is an old release of PHP 8.4 series. Using the latest version PHP 8.4.3 is highly recommended.
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.0RC3 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.4.0RC3
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.4.0RC3-cli-alpine

Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.4.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.4.0RC3-fpm-alpine

Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.4.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.4.0RC3-fpm

Commit List

Arnaud Le Blanc

  • Fix handling of invalid iterator in zend_weakmap_iterator_get_current_key() in 1d94fb86b7
  • Lazy objects: Update class constants earlier in 64081d1380

Ayesh Karunaratne

  • UPGRADING: Fix IntlTimeZone::getIanaID new method notice in 951dab74fa

Christoph M. Becker

David Carlier

Derick Rethans

Dmitry Stogov

Ilija Tovilo

  • Fix array to string conversion warning emitted in optimizer in c5745f40a5
  • Skip shebang in cli-server router script in 06efe44c2e
  • Split expression in 60562175ed
  • Fix op2 caching for static properties in 67318e91bc
  • Fix exception in assert() callback with bail enabled in b5c09b1a61
  • Fix segfault in zend_test_execute_internal() in 5c798415cd
  • Fix segfault on debug_backtrace() in _ZendTestFiber in 5955ce8987
  • Fix deprecation warnings in tests in 817d21ecc4
  • Disallow asymmetric visibility on static properties in a8bbc84551
  • Fix uaf in SplDoublyLinkedList::offsetSet() in 8820a10360
  • Fix use-after-free in SplObjectStorage::setInfo() in 12c987fae2
  • Fix uaf in SplFixedArray::unset() in 7fe168d855
  • Revert undoing of partial spl_filesystem_object initialization in 1c542af144
  • Fix propagation of ZEND_ACC_RETURN_REFERENCE for call trampoline in 8720063c4e
  • Fix handling of nested generator in zend_test observer in 69bcbdc3c5
  • Fix lineno in function redeclaration error in de7ef3fa66
  • Fix lineno for inheritance errors of early bound classes in 2d068c4f47

Kasey Jenkins

  • Making zend_hash_str_find_ptr_lc && zend_hash_find_ptr_lc C++ friendly in GH-16476

Niels Dossche

  • Update Lexbor in GH-16288
  • Fix GH-16292: Segmentation fault in ext/xmlreader/php_xmlreader.c:1282 in 5c1249391b
  • Fix GH-16316: DOMXPath breaks when not initialized properly in 1d0fbdf449
  • Fix OSS-Fuzz #371445205: Heap-use-after-free in attr_free in e0b1b693e3
  • Fix GH-16168: php 8.1 and earlier crash immediately when compiled with Xcode 16 clang on macOS 15 in e2e2b3ab62
  • Fix GH-16385: Unexpected null returned by session_set_cookie_params in 7cdd1302c3
  • Fix GH-16337: Use-after-free in SplHeap in a56ff4fec7
  • Add missing hierarchy checks to replaceChild in 3ed01d454d
  • Restore accidentally deleted check in b7b0b954be
  • Backport 0a39890c: Fix libxml2 2.12 build due to API breaks in fa6a0f80f6
  • Backport e2d97314: Backport deprecation warning ignores to unbreak CI in dbde99d875
  • Backport 4fe82131: Backport libxml2 2.13.2 fixes in GH-14816
  • Backport f74f9b07: Update libxml test for the directory field behaviour change in b78618750f
  • Backport 3ec5919e: Update error message for libxml 2.13 in 6199289b6e
  • Workaround deprecation warning in zend_test on 8.1 in 5bd04acfe9
  • Backport 061058a9: Test fixes for libxml2 2.12.0 in 14c107371c
  • Fix error message for newer libxml in 2c40762b4e
  • Fix GH-16318: Recursive array segfaults soap encoding in 6ff4a2d7a8
  • Fix GH-16409: Segfault in exif_thumbnail when not dealing with a real file in 3843f0ecfe
  • Fix GH-16397: Segmentation fault when comparing FFI object in GH-16401
  • Fix GH-16429: Segmentation fault (access null pointer) in SoapClient in d613c0ed30
  • Fix GH-16465: Heap buffer overflow in DOMNode->getElementByTagName in d70f3ba9a5
  • Fix various document ref pointer mismanagements in 5cb38e9d24
  • Fix GH-16406: Assertion failure in ext/phar/phar.c:2808 in 6a8d0a054d
  • Fix GH-16473: dom_import_simplexml stub is wrong in 41af9335b7
  • Fix GH-16533: Segfault when adding attribute to parent that is not an element in a0a7361b64
  • Fix GH-16535: UAF when using document as a child in 51b642f2c9

Saki Takamachi

Tim Düsterhus

  • curl: Prevent a CurlMultiHandle from holding onto a CurlHandle if add_handle fails in GH-16302
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.

Support PHP.Watch — If you find the articles, version information, Codex, and other PHP.Watch contributions useful, consider supporting through GitHub Sponsors. Your sponsorship helps dedicate more time to creating valuable content and improving the PHP community. Together, we can keep the momentum going — thank you for your support!

Thanks to the highest tier sponsor: @TomasVotruba for your generous support to keep PHP.Watch moving 💜