Release Information
- Release Type
- Bug Fix Release
- Release Status
- QA Release
- Branch Status
- Upcoming Release
PHP 8.3 is a development version, and is not recommended for production use. PHP 8.3 is scheduled to reach General Availability on 2023-11-23.
PHP 8.3.0RC3 is the latest QA release in PHP 8.3.
Downloads
Source Code
Git Clone
Use Git to clone the 8.3.0RC2 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.3.0RC2
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.0RC2-x64NTS.zip (30.6 MiB)
php-8.3.0RC2-x86NTS.zip (27.48 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.0RC2-x64TS.zip (30.74 MiB)
php-8.3.0RC2-x86TS.zip (27.46 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.0RC2-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.3.0RC2-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.0RC2-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.3.0RC2-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.0RC2-fpm
ChangeLog
Core
- Fixed GH-11847 (DTrace enabled build is broken).
- Fixed bug GH-11876:
ini_parse_quantity()
accepts invalid quantities. - Fixed bug GH-12073 (Segfault when freeing incompletely initialized closures).
- Fixed bug GH-12060 (Internal iterator rewind handler is called twice).
- Fixed OSS Fuzz #61865 (Undef variable in ++/-- for declared property that is unset in error handler).
- Fixed bug GH-12102 (Incorrect compile error when using array access on TMP value in function call).
- Fixed warning emitted when checking if a user stream is castable.
- Fixed bug GH-12123 (Compile error on MacOS with C++ extension when using
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX
).
FPM
- Fixed GH-12077 (PHP 8.3.0RC1 borked
socket-close-on-exec.phpt
).
Intl
- Fixed bug GH-12020 (
intl_get_error_message()
broken afterMessageFormatter::formatMessage()
fails).
ODBC
- Fixed memory leak with failed SQLPrepare.
- Fixed persistent procedural ODBC connections not getting closed.
PCRE
- Update bundled libpcre2 to 10.42.
SimpleXML
- Fixed bug #52751 (XPath processing-
instruction()
function is not supported).
SPL
- Fixed bug GH-11972 (RecursiveCallbackFilterIterator regression in 8.1.18).
Standard
- Fixed bug GH-12151 (str_getcsv ending with escape zero segfualt).
SQLite3
- Fixed bug GH-11878 (SQLite3 callback functions cause a memory leak with a callable array).
Commit List
Calvin Buckley
- Fix memory leak with failed SQLPrepare in a022ec53bd
- Fix persistent procedural ODBC connections not getting closed in 5a2b251610
- ODBC unit tests shouldn't override odbc.ini location in a648d39297
Dmitry Stogov
- Fixed uninitialized EX(opline) access (possible Zend/tests/gh12073.phpt crash) in f1f608bf53
- Fixed tracing jit for BIND_INIT_STATIC_OR_JMP in 95edb50b58
- Fix ws in 3ffa1c4c3e
- Fixed tracing JIT support for CALLABLE_CONVERT in GH-12156
Eric Mann
- Update versions for PHP 8.3.0RC2 in 611f06b2a1
Filip Zrůst
- Remove CPP when invoking dtrace utility in 02b3fb1f6b
George Peter Banyard
- Fix GH-11876:
ini_parse_quantity()
accepts invalid quantities in d229a480ad - Add tests for oss-fuzz-61469: Undef dynamic property in ++/-- unset in error handler in 013bb5769b
- Fixed bug GH-12020:
intl_get_error_message()
broken afterMessageFormatter::formatMessage()
fails in a579fa807c - Fix OSS Fuzz #61865: Undef variable in ++/-- for declared property that is unset in error handler in 8a392eddf9
- streams: Checking if a stream is castable should not emit warnings for user defined streams in d68073c23b
Ilija Tovilo
- Skip dl() tests on ASAN in fb0f4215de
- Increase
run-tests.php
timeout for asan in f4a6a6d096 - Include branch in benchmarking information in ee6f9e294c
- Fix master branch check in find-target-branch.bat in 9ce9c11ee8
xfail
mbstring test on Windows 32-bit in 6b74f1f745- Fix freeing of incompletely initialized closures in af2110e664
- Revert 479e6593 in 3433dab5f7
- Skip profiling of sqlite3_step in bb31a75321
- Revert "Skip profiling of sqlite3_step" in 3fb09940fc
- Fix
zend_separate_if_call_and_write
for FUNC_ARGs in 748adf18fc - Improve invalid cpp modifier message in 011071a3b3
Jakub Zelenka
- Extend workflow matrix and nighly with PHP-8.3 in 300ad65c7c
- Fix FPM UDS test for very long name check by extending its length in ea87501aee
- Fix GH-12077: Check lsof functionality in socket on close test in fe30c5098f
- Fix GH-12151: str_getcsv ending with escape zero segfualt in 64ebadcac5
ju1ius
- adds failing test case for GH-12060 in 9658d9ada4
- Prevents double call to internal iterator rewind handler in da7a66d647
Máté Kocsis
- Fix the class synopsis of Throwable in 597aeb1246
- Align class name detection to the new class synopsis format in c5fb8b6a6b
- Fix type of the
PHP_FLOAT_DIG
constant in 58657ff26a - Fix GH-12123 Make _ZEND_TYPE_PREFIX apply only for MSVC in 45c7e3b06b
Niels Dossche
- Fix GH-11972: RecursiveCallbackFilterIterator regression in 8.1.18 in ffd7018fcd
- Fix GH-11972: RecursiveCallbackFilterIterator regression in 8.1.18 in 1cdcbc05b0
- Tweak behaviour of dynamic properties wrt error handlers in eee1617f38
- Update bundled pcre2 to 10.42 in c4e8f652c5
- Fix GH-11878: SQLite3 callback functions cause a memory leak with a callable array in 07a9d2fb32
- Fix build with sqlite3 gc and fci/fcc api in 1d59b37742
- Use
zend_get_gc_buffer_add_fcc()
in 49980ee89d - Fix #52751: XPath processing-
instruction()
function is not supported in 107443b311
Remi Collet
- ensure displays_errors is off (default) in 1f2cfd8009
- zip: add new test for dynamic files in 57123ee489