PHP 8.2.16: Downloads, Changelog, News

Release Information

PHP Version
PHP 8.2
Release Date
Release Type
Bug Fix Release
Release Status
Use PHP 8.2.21 instead
Branch Status

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


Source Code

Git Clone
Use Git to clone the 8.2.16 tag from the PHP Git repository.
git clone --depth 1 --branch php-8.2.16
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 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.16-cli-alpine

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

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



  • Fixed timer leak in zend-max-execution-timers builds.
  • Fixed bug GH-12349 (linking failure on ARM with mold).
  • Fixed bug GH-13097 (Anonymous class reference in trigger_error / thrown Exception).
  • Fixed bug GH-13215 (GCC 14 build failure).


  • Fix missing error check in curl_multi_init().


  • Fixed bug GH-12996 (Incorrect SCRIPT_NAME with Apache ProxyPassMatch when plus in path).


  • Fixed bug GH-10344 (imagettfbbox(): Could not find/open font UNC path).
  • Fixed bug GH-10614 (imagerotate will turn the picture all black, when rotated 90).


  • Fixed bug GH-12107 (When running a stored procedure (that returns a result set) twice, PHP crashes).


  • Fixed bug GH-13232 (Segmentation fault will be reported when JIT is off but JIT_debug is still on).


  • Fixed LibreSSL undefined reference when OPENSSL_NO_ENGINE not set.


  • Fix GH-13119 (Changed to convert float and double values into strings using H format).


  • Fixed bug #71465 (PHAR doesn't know about litespeed).
  • Fixed bug GH-13037 (PharData incorrectly extracts zip file).


  • Fixed bug GH-13138 (Randomizer::pickArrayKeys() does not detect broken engines).


  • Fixed bug GH-12504 (Corrupted session written when there's a fatal error in autoloader).


  • Fixed bug GH-13071 (Copying large files using mmap-able source streams may exhaust available memory and fail).

Commit List

David Carlier


  • Fix missing error check in curl_multi_init() in 9814d4a191

Dmitry Stogov

  • Disable inlining and inter-procedure-analyses for zend_string_equal_val() function that may be overriden for valgrind in GH-13099
  • Fix zend_may_throw() for FETCH_DIM_IS and ISSET_ISEMPTY_DIM_OBJ in b33e3eb8c2
  • Wrap cleanup function call with zend_try in b45e7a613f
  • Fix GH-12481: PHP crash with JIT enabled in f120ac93a1
  • Fix GH-13193: Significant performance degradation in 'foreach' starting from PHP 8.2.13 (caused by garbage collection) in GH-13265

Ilija Tovilo

  • Fix dumping of zend_string.val in gdb in f18710e362

Jakub Zelenka

  • Fix GH-12996: Incorrect SCRIPT_NAME with Apache ProxyPassMatch when plus in path in b04b09ef56

Jan Palus

  • Set libtool tag per command instead of global one in d57a7767a2

Niels Dossche

Peter Kokot

Pierrick Charron

Remi Collet

Rob Landers


Tim Düsterhus

  • random/standard: Correctly handle broken engines in php_array_pick_keys in GH-13138
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.