PHP 8.3.0beta3: Downloads, Changelog, News

Release Information

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

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

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

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

Commit List

Alexandre Daubois

  • Fix GH-10964: Improve man page about the built-in server in 997a36750b
  • Improve database naming in ext/pdo_pgsql for better para-tests in GH-11872
  • ext/pdo_pgsql: Improve tests cleanup in GH-11855
  • Improve ext/pdo_sqlite tests cleanup in GH-11900

Arne_

  • Allow easter_date to process years after 2037 on 64bit systems in GH-11862

Athos Ribeiro

  • Fix off-by-one bug when truncating tempnam prefix in cbfd73765a

Ayesh Karunaratne

  • Fix DateTime exception hierarchy for DateInvalidTimeZoneException in GH-11970

Cristian Rodríguez

  • Use zend_ast_size consistenly in GH-11955

David CARLIER

  • ci update freebsd image to the 13.2 image in GH-11110

Derick Rethans

  • Import timelib 2022.09 in 851890bd9c
  • Fixed bug GH-11854 (DateTime:createFromFormat stopped parsing datetime with extra space) in a8f4171655
  • Fix GH-11416: Crash with DatePeriod when uninitialised objects are passed in in 4833b84854
  • Fix GH-11416: Crash with DatePeriod when uninitialised objects are passed in (PHP 8.2+) in b71d2e16e6
  • Update initialisation check for new PHP-8.3 API in e157da11f3

Dmitry Stogov

  • Fixed incorrect tracked malloc deallocation in 4553258df3

Eric Mann

  • Update versions for PHP 8.3.0beta3 in 4733be4439

George Peter Banyard

  • Fix OSS-fuzz #60709 unseting op via globals in 6ae9cf40d1
  • Fix OSS Fuzz #60734: use-after-free visible in ASAN build in 2fbec0974f
  • Zend: Fix memory leak in ++/-- when overloading fetch access in fc3df283fb
  • ext/zend_test: Move object handler test objects to their own file in GH-11852
  • Fix skipif condition on new test in 4cbc66d5e6
  • Fix various bugs related to DNF types in 02a80c5b82

Ilija Tovilo

  • Remove opcache.consistency_checks in b2dbf0a2c6
  • Unpoison opcache mem buf for file cache checksum calc in 35862641ba
  • Fix use-of-uninitialized-value in start_fake_frame in ed27d70d9a
  • Add block size support for tracked_malloc in GH-11856
  • Synchronize zend_jit_stop_counter_handlers() in b80bebc278
  • Add typed specialization for ZEND_COUNT in GH-11825
  • Assert ptr_ptr value of TMP|CONST isn't used in GH-11865
  • Don't test macOS & i386 without opcache on push in 5cd0208e9f
  • Revert "Call cast_object handler from get_properties_for" in efc73f24c3
  • Move opnum_start for goto for clarification in GH-11911
  • Move ASAN built to GitHub actions in fc9266a5fc
  • Fix curl_basic_009.phpt for newer curl versions in 3af76b2302
  • Fix EXPECT for bug52820.phpt on newer curl versions in 0e843c5d82
  • Add Windows build to nightly in 90f514cf21
  • Remove i386 Linux from push in 248e6b0404
  • Fix uouv on oom on object allocation in ee000ea186
  • Use per-branch matrix for windows nightly in 902d39d57c

Jorg Adam Sowa

  • BCmath extension code reformatting in GH-11896

Kamil Tekiela

  • Remove unnecessary requires in mysqli tests in af4eabd8c9
  • Improve test for mysqli_result constructor in 1451b9e6f2
  • Tidy up new my_mysqli in tests in aab36a774a
  • Revert changes to mysqli_get_connection_stats.phpt in 0c288c4098
  • Remove unused CLEAN section in ab46d2012c
  • Add DROP TABLE to clean up after the test in 66b359e4de
  • Remove remnant of COM_FIELD_LIST in 788540ef2c
  • Fix error checking in mysqlnd in 0d922aa595
  • Align highlight_string|file with HTML standard and modern browsers in f907a009f9
  • mysqli_field_seek return type changed to true in GH-11948

Kévin Dunglas

  • fix: handle the GNU specific version of strerror_r in 96885bc04f

Levi Morrison

  • Add php_version and php_version_id PHPAPI funcs in GH-11875

Michael Orlitzky

  • ext/dba/tests/dba_tcadb.phpt: support pthreadless tokyocabinet in GH-11648

Mikhail Galanin

  • Add "revalidate" time to opcache scripts list in 958a25e22e

Máté Kocsis

  • Fix return type of odbc_data_source() in 77252afaf0
  • Make the $enable parameter of odbc_autocommit() nullable in GH-11909
  • Align the return type of snmp_set_oid_numeric_print() to its aliased funtion in 67ab2b7d87

nielsdos

Niels Dossche

  • Fix json_encode result on DOMDocument in 6e468bbd3b
  • Respect strict error setting for adoptNode in fa397e0217
  • Deduplicate loading code in 04df77650d
  • Handle strict error properly in adoptNode failure, and add a test in 6f6fedcb46
  • Fix GH-11438: mysqlnd fails to authenticate with sha256_password accounts using passwords longer than 19 characters in 509906b2a5
  • Fix missing link variable in test in 162bd2a58a
  • Revert the fix for GH-11498 in f7be15dbad
  • Mark buildFromIterator test as conflicting in dc586b121a
  • Remove useless check in 872bf56fed
  • Make DOMChildNode::remove() run in O(1) performance in e701b2fee7
  • Fix manually calling __construct() on DOM classes in 08c4db7f36
  • Fix GH-11830: ParentNode methods should perform their checks upfront in dddd309da4
  • Remove useless hashmap check in 5018dfecdf
  • Fix viable next sibling search for replaceWith in 815b5ad501
  • Fix viable next sibling search for replaceWith in df6e8bd4fd
  • Fix segfault when DOMParentNode::prepend() is called when the child disappears in d19e4da125
  • Align DOMChildNode parent checks with spec in 23ba4cde53
  • Optimize checks for DOMParentNode and DOMChildNode in 620b6220c2
  • Fix #80927: Removing documentElement after creating attribute node: possible use-after-free in bb092ab4c6
  • GH-11964: In ext/date/php_date.stub.php, DateRangeError extends itself in 17b3af2958
  • Fix #81992: SplFixedArray::setSize() causes use-after-free in b71c6b2c6c

Peter Kokot

  • Remove unused HAVE_GCC_GLOBAL_REGS shell variable in GH-11877

Yurun

  • Fix MySQL Statement has a empty query result when the response field has changed, also Segmentation fault in ca5d48213a
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 💜