PHP 8.3.0alpha2: Downloads, Changelog, News

Release Information

Release
8.3.0alpha2
PHP Version
PHP 8.3
Release Date
Release Type
Bug Fix Release
Release Status
Use PHP 8.3.15 instead
Branch Status
Supported (Latest)

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

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

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

Commit List

Alex Dowad

Ben Ramsey

  • Add example commit message to release process doc in 938ebb3b61
  • Add PHP 8.3 to release process doc; remove 7.4 in ca1905116b

Bob Weinand

  • Fix add/remove observer API with multiple observers installed in 709540ccdc

David CARLIER

  • ext/pgsql: adding pg_set_error_context_visibility in dd8514a0bd
  • ext/pdo_pgsql: connection status update to distinguish from truly bad quality connections in ec3daea1d6
  • ext/pgsql: fix PGtrace invalid free issue in f194cdf852
  • ext/gd: imagerotate removes ignore_transparent argument in b0d8c10fd9

divinity76

Dmitry Stogov

  • Keep consistent EG(current_execute_data) after return from generator in GH-11380
  • Fixed incorrect VM stack overflow checks elimination in 1a96d64828

Eric Mann

  • Update versions for PHP 8.3.0alpha2 in 8cc8f1a5de

Florian Engelhardt

  • Fix initial array size in gc_status() in GH-11393

George Peter Banyard

  • More usage of known zend_str instead of C string in GH-11381
  • ext/imap: Refactor + Update to modern property write API in GH-11415
  • ext/imap: Remove php_imap_list_add_object() function in 5d0304876f
  • ext/imap: Use propery API instead of php_imap_hash_add_object() in 9798dc20e2
  • ext/imap: Cleanup custom implementation of rfc822_write_address() in 0b99bc21e5
  • ext/imap: Do not condition on number of arguments but on pointer being set or not in b1dd9b8a39
  • ext/imap: Add const qualifier for header_injection() in b1f24e3bea
  • ext/imap: Refactor imap_fetch_overview() in d714ae8964
  • ext/imap: Narrow return type to true in cc9ab53308
  • ext/imap: Refactor common conditional property assignment in 6c25257db0
  • Move range() tests to a dedicated folder in 53829b7daf
  • Add number or str ZPP macros in 80e90ad7ba
  • Zend: Expose zendi_try_get_long() function via a public API in GH-10175
  • [RFC] Define proper semantics for range() function in GH-10826

Ilija Tovilo

  • Forward shutdown exceptions to user error handlers in b3e33be443

Jakub Zelenka

  • Fix CS and checking for IPv6 SAN verify in 3fc013b2e2
  • Fix GH-10406: fgets on a redis socket connection fails on PHP 8.3 in 49fbbea2ea
  • FPM: Add "pcntl" when running another test depending on pcntl in 9b18466396

James Lucas

Mikhail Galanin

  • Suppress warning when the test run under non-root in GH-11400
  • sapi/fpm: add "pcntl" when running test depending pcntl_sigprocmask() in 7ade242e28

Máté Kocsis

nielsdos

  • Fix test failure for init_fcall_003.phpt without opcache in cced0ddf9d
  • Remove redundant assignment on nodep->ns in 6e04050474
  • Fix #79700: Bad performance with namespaced nodes due to wrong libxml assumption in a38e3c999f
  • Fix #70359 and #78577: segfaults with DOMNameSpaceNode in f2d673fb18
  • Fix GH-11433: Unable to set CURLOPT_ACCEPT_ENCODING to NULL in a8a3b99e00
  • Fix bug #55294 and #47530 and #47847: namespace reconciliation issues in b30be40b86
  • Fix GH-11451: Invalid associative array containing duplicate keys in 29a96e09b2
  • Fix GH-11404: DOMDocument::savexml and friends ommit xmlns="" declaration for null namespace, creating incorrect xml representation of the DOM in 7eb3e9cd17
  • Revert "Fix GH-11404: DOMDocument::savexml and friends ommit xmlns="" declaration for null namespace, creating incorrect xml representation of the DOM" in c174ebfce0
  • Revert changes to DOMAttr::$value and DOMAttr::$nodeValue expansion in ad5ee8a2b7

Niels Dossche

  • Disable old libxml2 hack if the version does not suffer from the bug in GH-11379
  • Fix missing randomness check and insufficient random bytes for SOAP HTTP Digest in ac4254ad76
  • Allow final modifier when using a method from a trait in GH-11394
  • Get rid of return value for php_libxml_unregister_node() in GH-11398
  • Implement GH-8641: STREAM_NOTIFY_COMPLETED over HTTP never emitted in d22d0e26dc
  • Fix lifetime issue with getAttributeNodeNS() in e309fd8461
  • Fix "invalid state error" with cloned namespace declarations in 10d94aca4c
  • Fix GH-11406: segfault with unpacking and magic method closure in 5c789806ef
  • Add missing cache invalidation in dom_child_replace_with() in 8904ac7fef
  • Fix #80332: Completely broken array access functionality with DOMNamedNodeMap in 9f7d88802e
  • Fix GH-11455: Segmentation fault with custom object date properties in 93becab506

Peter

  • Fix cross-compilation check in phar generation for FreeBSD in 4fcb3e0d34

Pierrick Charron

Remi Collet

Tim Starling

  • When running FPM tests, pass -n option to php-fpm in ea2ee60552
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 💜