PHP 8.3.22: Downloads, Changelog, News

Release Information

Release
8.3.22
PHP Version
PHP 8.3
Release Date
Release Type
Bug Fix Release
Release Status
Latest Release in 8.3
Branch Status
Supported

Latest release for PHP 8.3.
PHP 8.3 continues to receive bug fixes and security fixes until 2025-12-31.

Downloads

Source Code

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

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

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

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

ChangeLog

Core

  • Fixed GH-18480 (array_splice with large values for offset/length arguments). (nielsdos/David Carlier)
  • Partially fixed GH-18572 (nested object comparisons leading to stack overflow).
  • Fixed OSS-Fuzz #417078295.
  • Fixed OSS-Fuzz #418106144.

Curl

  • Fixed GH-18460 (curl_easy_setopt with CURLOPT_USERPWD/CURLOPT_USERNAME/ CURLOPT_PASSWORD set the Authorization header when set to NULL).

Date

  • Fixed bug GH-18076 (Since PHP 8, the date_sun_info() function returns inaccurate sunrise and sunset times, but other calculated times are correct)
  • Fixed bug GH-18481 (date_sunrise with unexpected nan value for the offset). (nielsdos/David Carlier)

Intl

  • Fix various reference issues.

LDAP

  • Fixed bug GH-18529 (ldap no longer respects TLS_CACERT from ldaprc in ldap_start_tls()).

Opcache

  • Fixed bug GH-18417 (Windows SHM reattachment fails when increasing memory_consumption or jit_buffer_size).
  • Fixed bug GH-18567 (Preloading with internal class alias triggers assertion failure).
  • Fix leak of accel_globals->key.

OpenSSL

  • Fix missing checks against php_set_blocking() in xp_ssl.c.

PDO_OCI

  • Fixed bug GH-18494 (PDO OCI segfault in statement GC).

Sockets

  • Fixed bug GH-18617 (socket_import_file_descriptor return value unchecked).

SPL

  • Fixed bug GH-18421 (Integer overflow with large numbers in LimitIterator).

Standard

  • Fixed bug GH-17403 (Potential deadlock when putenv fails).
  • Fixed bug GH-18509 (Dynamic calls to assert() ignore zend.assertions).

Windows

  • Fix leak+crash with sapi_windows_set_ctrl_handler().

Zip

  • Fixed bug GH-18431 (Registering ZIP progress callback twice doesn't work).
  • Fixed bug GH-18438 (Handling of empty data and errors in ZipArchive::addPattern).

Commit List

Carlos Buenosvinos

  • Fix GH-18076: date_sun_info() function returns inaccurate sunrise and sunset times in c9f3127ca8

David Carlier

George Wang

  • Update SAPI_LITESPEED_PATH to sapi/litespeed/lsphp in e4f2e4a99a
  • Update max size of request headers from 65535 to 256K in 58e5d0c240
  • Update LSAPI version to V8.2 in 03844d1f51
  • Address compiler warnings in 8e5b3129de

Ilija Tovilo

  • Drop tidyp from FreeBSD build in 35936bfa79
  • Use --ignore-platform-req=php+ in community build in 0a42e6fbc5
  • Fix missing include in win32/globals.c in 69f0882d3b

Jakub Zelenka

Levi Morrison

  • fix: dangling opline in ZEND_INIT_ARRAY in GH-18578

Niels Dossche

  • Fix DOM tests for upcoming libxml2 serializer changes in d6e70e7053
  • Revert "Port XML_GetCurrentByteIndex to public APIs" in 54e662c6f5
  • Fix GH-17403: Potential deadlock when putenv fails in 32e091260a
  • Fix GH-18421: Integer overflow with large numbers in LimitIterator in a91d913901
  • Fix GH-18431: Registering ZIP progress callback twice doesn't work in b066ac0b23
  • Fix GH-18438: Handling of empty data and errors in ZipArchive::addPattern in 2eb3100dca
  • datefmt_parse/datefmt_localtime references type system fixes in 2beec54e47
  • Fix GH-18417: Windows SHM reattachment fails when increasing memory_consumption or jit_buffer_size in 7869af6fa8
  • Fix numfmt_parse_currency() reference handling in e3cac07a9b
  • Fix reference handling of grapheme_extract() in e3105f5f1e
  • Fix reference handling of IntlTimeZone::getCanonicalID/intltz_get_canonical_id in a090e59b37
  • Fix leak+crash with sapi_windows_set_ctrl_handler() in fb3536fd60
  • Fix GH-18494: PDO OCI segfault in statement GC in dcf9d8f812
  • Sync EXTENSIONS and extend maintenance time in e7a44a68e9
  • Fix OSS-Fuzz #417078295 in 46ac878f6a
  • Fix OSS-Fuzz #418106144 in 98cb17f4fd
  • Fix deprecation warning for libxml SAX header in GH-18594
  • Fix GH-18567: Preloading with internal class alias triggers assertion failure in 41e11a627d
  • Backport accel_globals->key leak fix (8.3) in b2d78ae00c
  • Fix missing checks against php_set_blocking() in xp_ssl.c in 31ebb42268
  • Split off php_set_sock_blocking() and s.is_blocked to a separate function in 1863014fbd

Remi Collet

Tim Düsterhus

  • fileinfo: Fix cleanup in ext/fileinfo/tests/cve-2014-1943-mb.phpt in GH-18397
  • standard: Take zend.assertions into account for dynamic calls to assert() in GH-18521
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.