PHP 8.2.9: Downloads, Changelog, News

Release Information

Release
8.2.9
PHP Version
PHP 8.2
Release Date
Release Type
Security Update
Release Status
Use PHP 8.2.24 instead
Branch Status
Supported

PHP 8.2.9 is an old release of PHP 8.2 series. Using the latest version PHP 8.2.24 is highly recommended.
PHP 8.2 continues to receive bug fixes and security fixes until 2024-12-31.

Downloads

Source Code

Git Clone
Use Git to clone the 8.2.9 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.2.9
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.2.9-cli-alpine

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

Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.2.9-apache

Debian-based NTS FPM: PHP-FPM, can be integrated with Nginx, Caddy, and other web servers over Fast CGI.
docker pull php:8.2.9-fpm

ChangeLog

Build

  • Fixed bug GH-11522 (PHP version check fails with '-' separator).

CLI

  • Fix interrupted CLI output causing the process to exit.

Core

  • Fixed oss-fuzz #60011 (Mis-compilation of by-reference nullsafe operator).
  • Fixed line number of JMP instruction over else block.
  • Fixed use-of-uninitialized-value with ??= on assert.
  • Fixed oss-fuzz #60411 (Fix double-compilation of arrow-functions).
  • Fixed build for FreeBSD before the 11.0 releases.

Curl

  • Fix crash when an invalid callback function is passed to CURLMOPT_PUSHFUNCTION.

Date

  • Fixed bug GH-11368 (Date modify returns invalid datetime).
  • Fixed bug GH-11600 (Can't parse time strings which include (narrow) non-breaking space characters).
  • Fixed bug GH-11854 (DateTime:createFromFormat stopped parsing datetime with extra space).

DOM

  • Fixed bug GH-11625 (DOMElement::replaceWith() doesn't replace node with DOMDocumentFragment but just deletes node or causes wrapping <></> depending on libxml2 version).

Fileinfo

  • Fixed bug GH-11298 (finfo returns wrong mime type for xz files).

FTP

  • Fix context option check for "overwrite".
  • Fixed bug GH-10562 (Memory leak and invalid state with consecutive ftp_nb_fget).

GD

  • Fix most of the external libgd test failures.

Intl

  • Fix memory leak in MessageFormatter::format() on failure.

Libxml

MBString

  • Fix GH-11300 (license issue: restricted unicode license headers).

Opcache

  • Fixed bug GH-10914 (OPCache with Enum and Callback functions results in segmentation fault).
  • Prevent potential deadlock if accelerated globals cannot be allocated.

PCNTL

  • Fixed bug GH-11498 (SIGCHLD is not always returned from proc_open).

PDO

  • Fix GH-11587 (After php8.1, when PDO::ATTR_EMULATE_PREPARES is true and PDO::ATTR_STRINGIFY_FETCHES is true, decimal zeros are no longer filled).

PDO SQLite

  • Fix GH-11492 (Make test failure: ext/pdo_sqlite/tests/bug_42589.phpt).

Phar

PHPDBG

  • Fixed bug GH-9669 (phpdbg -h options doesn't list the -z option).

Session

  • Removed broken url support for transferring session ID.

Standard

  • Fix serialization of RC1 objects appearing in object graph twice.

Streams

  • Fixed bug GH-11735 (Use-after-free when unregistering user stream wrapper from itself).

SQLite3

  • Fix replaced error handling in SQLite3Stmt::__construct.

XMLReader

  • Fix GH-11548 (Argument corruption when calling XMLReader::open or XMLReader::XML non-statically with observer active).

Commit List

Adam Saponara

Anatol Belski

Bob Weinand

  • Fix GH-11548 (Argument corruption when calling XMLReader::open or XMLReader::XML non-statically with observer active) in cad47be8b6

David Carlier

  • zend_gdb disable gdb detection for FreeBSD < 11 in 69b4360e88

Derick Rethans

George Peter Banyard

  • ext/intl: Fix memory leak in MessageFormatter::format() in 536dbd74fa

Ilija Tovilo

  • Fix arm build in bb2b1897df
  • Remove session ID set through REQUEST_URI in f160eff441
  • Revert "Mangle PCRE regex cache key with JIT option" in 4d91665f78
  • Fix use of uninitialized memory in pcntl SIGCHLD handling in 003cf9da78
  • Fix mis-compilation of by-reference nullsafe operator in dc73b73f8b
  • Fix serialization of RC1 objects appearing in object graph twice in d7d36692fd
  • xfail socket zerocopy test on Cirrus + arm in 838f6bffff
  • Attempt to fix gh11498.phpt on MSAN in 07dd0c80a8
  • Revert "Fix GH-9967 Add support for generating custom function, class const, and property attributes in stubs" in ef4f08832c
  • Use waitpid(-1) over WAIT_ANY in 46e9c5104c
  • Attempt to improve setup-slapd.sh stability in 4cc800fcb4
  • Retire AppVeyor in f47dc259aa
  • Fix trailing if element JMP lineno in a5e89c5686
  • Fix use-of-uninitialized-value with ??= on assert in 84a2e48050
  • Implement flaky test section in 849fdcae7d
  • Fix double-compilation of arrow-function in 060df83a98
  • Fix bug-gh11600.phpt in 57229836d4
  • Always memoize assert in b1b7c61a27
  • Fix use-after-free when unregistering user stream wrapper from itself in 4e35ee0109

Jonas

  • Fix context option check for "overwrite" in FTP in 1d369a871d

Kévin Dunglas

  • tests(ext-curl): fix HTTP/2 Server Push tests in 47d478806a

Michael Orlitzky

  • Fix most external GD 2.3.3 compatibility in 0aaad46c15

Michael Voříšek

  • Mangle PCRE regex cache key with JIT option in 466fc78d2c

Máté Kocsis

  • Fix GH-9967 Add support for generating custom function, class const, and property attributes in stubs in d7ab0ff0c8

nielsdos

  • Fix interrupted CLI output causing the process to exit in 1111a9517b
  • Fix GH-11498: SIGCHLD is not always returned from proc_open in f39b513916

Niels Dossche

  • Add missing WUNTRACED in 931d8d059b
  • Fix GH-11300: license issue: restricted unicode license headers in ee42621ff6
  • Fix replaced error handling in SQLite3Stmt::__construct in 824d1f95ad
  • Fix GH-10562: Memory leak and invalid state with consecutive ftp_nb_fget in c962a96c34
  • Fix crash when an invalid callback function is passed to CURLMOPT_PUSHFUNCTION in 3ccd8d7866
  • Fix return value of _php_server_push_callback in case of failure in dc9adda653
  • Add missing check on EVP_VerifyUpdate() in phar util in 0d07b6d647
  • Fix GH-11625: DOMElement::replaceWith() doesn't replace node with DOMDocumentFragment but just deletes node or causes wrapping <></> depending on libxml2 version in 15ff830373
  • Fix GH-11629: bug77020.phpt tries to send mail in 06d87e4c14
  • Fix GH-11630: proc_nice_basic.phpt only works at certain nice levels in c408a8b604
  • Fix tests for stat rdev in 6b87e08b82
  • Fix GH-10914: OPCache with Enum and Callback functions results in segmentation fault in bc42179133
  • Add regression test for GH-11682 in 48b246e038
  • Fix bug-gh11600.phpt to work with different ICU versions in 9c47f33a5f
  • Handle fragments consisting out of multiple children without a single root correctly in 5c26258eeb
  • Prevent potential deadlock if accelerated globals cannot be allocated in b0bc057e86
  • Fix buffer mismanagement in phar_dir_read() in 18b552244b
  • Sanitize libxml2 globals before parsing in 8f14f036c3
  • Disable global state test on Windows in e8f217dd6c

Peter Kokot

Remi Collet

  • adapt test expectation with libzip 1.10 in b972af9589

SakiTakamachi

  • Fix GH-11587 PDO::ATTR_STRINGIFY_FETCHES should return strings even in if PDO::ATTR_EMULATE_PREPARES is enabled in e0aadc1c0d

Sergey Panteleev

SVGAnimate

Vinicius Dias

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 💜