PHP 8.3.12: Downloads, Changelog, News

Release Information

Release
8.3.12
PHP Version
PHP 8.3
Release Date
Release Type
Security Update
Release Status
Use PHP 8.3.14 instead
Branch Status
Supported (Latest)

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

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

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

ChangeLog

CGI

Core

  • Fixed bug GH-15408 (MSan false-positve on zend_max_execution_timer).
  • Fixed bug GH-15515 (Configure error grep illegal option q).
  • Fixed bug GH-15514 (Configure error: genif.sh: syntax error).
  • Fixed bug GH-15565 (--disable-ipv6 during compilation produces error EAI_SYSTEM not found).
  • Fixed bug GH-15587 (CRC32 API build error on arm 32-bit).
  • Fixed bug GH-15330 (Do not scan generator frames more than once).
  • Fixed uninitialized lineno in constant AST of internal enums.

Curl

  • FIxed bug GH-15547 (curl_multi_select overflow on timeout argument).

DOM

  • Fixed bug GH-15551 (Segmentation fault (access null pointer) in ext/dom/xml_common.h).
  • Fixed bug GH-15654 (Signed integer overflow in ext/dom/nodelist.c).

Fileinfo

  • Fixed bug GH-15752 (Incorrect error message for finfo_file with an empty filename argument).

FPM

MySQLnd

  • Fixed bug GH-15432 (Heap corruption when querying a vector).

Opcache

  • Fixed bug GH-15661 (Access null pointer in Zend/Optimizer/zend_inference.c).
  • Fixed bug GH-15658 (Segmentation fault in Zend/zend_vm_execute.h).

SAPI

Standard

  • Fixed bug GH-15552 (Signed integer overflow in ext/standard/scanf.c).

Streams

  • Fixed bug GH-15628 (php_stream_memory_get_buffer() not zero-terminated).

Commit List

Arnaud Le Blanc

Bernd Kuhls

Christoph M. Becker

Daniel Scherzer

David Carlier

Derick Rethans

Dmitry Stogov

  • Fix GH-15502: Crash with JIT and Excimer in GH-15601
  • Fix GH-15497: Opcache with file_cache and JIT enabled crashes in GH-15635
  • Restore error message incorrectly removed by commit 10d43c4 (related to GH-15497) in c15bb9afe2
  • Prevent possible incorrect optimization caused by ZEND_ASSUME() in bf98023f1a
  • Don't set IS_STR_PERMANENT flag for strings stored in the file cache in GH-15643
  • Fix GH-15652: Segmentation fault in the Zend engine when JIT enabled in GH-15717
  • Fix GH-15820: Core dumped with jit.opcache=1245 in 5cf045d357

Eric Mann

Go Kudo

  • Fix MSan false-positive in zend_max_execution_timer in GH-15408
  • zend_max_execution_timer: fix gcc compatibility in GH-15447
  • zend_max_execution_timer: fix gcc compatibility in GH-15447
  • standard: supress msan in GH-15665
  • Fix OPcache tests under specific conditions in bca5f6e74f
  • Fix OPcache tests under specific conditions in d966c296d0

Ilija Tovilo

  • Disable LSAN for crashing SOAP tests (GH-14562) in 65a101f3a7
  • Fix uninitialized lineno in constant AST of internal enums in 08e0729c57
  • Intercept strlcpy and strlcat for msan on Clang 17 in GH-12674
  • Fix uouv in array_column in 24a294922b
  • Fix uninitialized EG(user_error_handler_error_reporting) in b9fdc0bdcd
  • Fix uninitialized CG(zend_lineno) in 1f35e2a999
  • Fix MSAN getservbyport() false positive in 0faa1d2017

Jakub Zelenka

Máté Kocsis

  • Add missing return for DatePeriod::__unserialize in 6cab76986d

Niels Dossche

Peter Kokot

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 💜