Release Information
- 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 (
Detailed articles on how to compile PHP are available for Ubuntu/Debian based systems and Fedora/RHEL based systems.
./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.
php-8.3.22-x64NTS.zip (30.71 MiB)
php-8.3.22-x86NTS.zip (27.58 MiB)
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.
php-8.3.22-x64TS.zip (30.85 MiB)
php-8.3.22-x86TS.zip (27.56 MiB)
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
Commit List
Carlos Buenosvinos
- Fix GH-18076:
date_sun_info()
function returns inaccurate sunrise and sunset times in c9f3127ca8
David Carlier
- backporting C++17 detection support for recent icu4c releases in 3fdd3ed9f7
- Fixed GH-18458:
Authorization
set with CURLOPT_USERPWD with NULL value in bb431f124c - Revert "Fixed GH-18458:
Authorization
set with CURLOPT_USERPWD with NULL value." in d9d58c9d79 - Fixed GH-18458:
Authorization
set with CURLOPT_USERPWD with NULL value in 24ab0f1ea1 - Fix GH-18481: date_sunrise check sun rise with offset if is finite/is nan in 0227d96f48
- Fix GH-18480:
array_splice
overflow on array length with offset in 8a585856d1 - GH-18572: infinite stack recursion in fallback object comparison in 4dcbd24bad
- fix regex typo for GH-18577 new test in 88d6e7c238
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
- Update versions for PHP 8.3.22 in 6c08c56694
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()
inxp_ssl.c
in 31ebb42268 - Split off
php_set_sock_blocking()
and s.is_blocked to a separate function in 1863014fbd
Remi Collet
- Fix GH-18529: ldap no longer respects TLS_CACERT from ldaprc in
ldap_start_tls()
Regresion introduced in fix for GH-17776 in 2760a3ef97 - NEWS in 8da9530652