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.0RC1 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.3.0RC1
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.0RC1-x64NTS.zip (30.6 MiB)
php-8.3.0RC1-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.0RC1-x64TS.zip (30.74 MiB)
php-8.3.0RC1-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.0RC1-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.3.0RC1-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.0RC1-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.3.0RC1-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.0RC1-fpm
ChangeLog
Core
- Fixed bug GH-11937 (Constant ASTs containing objects).
- Introduced Zend guard recursion protection to fix __debugInfo issue.
- Fixed bug GH-11790 (On riscv64 require libatomic if actually needed).
- Fixed oss-fuzz #61712 (assertion failure with error handler during binary op).
DOM
- Fixed GH-11952 (Confusing warning when blocking entity loading via libxml_set_external_entity_loader).
FFI
- Implement GH-11934 (Allow to pass CData into struct and/or union fields).
FPM
- Fixed bug #76067 (
system()
function call leaks php-fpm listening sockets).
Standard
- Added $before_needle argument to strrchr().
- Fixed GH-11982 (str_getcsv returns null byte for unterminated enclosure).
Streams
Commit List
Alex Dowad
- Print host CPU and installed package info in CI build log on Linux in fd462b1e0f
- Improve
mb_detect_encoding
accuracy for text containing vowels with macrons in 81faab9235
Ayesh Karunaratne
- [skip-ci] minor typo fixes in UPGRADING and CONTRIBUTING.md in GH-11976
- gen_stub: fix regexps with unintentional range due to
-
character placement in GH-12004 - Add class constant types to Phar extension in GH-11826
Bob Weinand
- Track HashTableIterators for copy-on-write copies of HashTables in cd53ce838a
- Address CR comments in b07a2d4714
Cristian Rodríguez
- Use a single version of strnlen in GH-12015
David Carlier
ext/iconv
: fix build for netbsd in fc8d5c72e5
David CARLIER
- libxml set error structure simplification proposal in GH-12054
zend_call_stack_default_size
update BSD values. in GH-12051
HypeMC
- Add before_needle argument to
strrchr()
in f25474f7f2
Ilija Tovilo
- Fix segfault in format_default_value due to unexpected enum/object in f78d1d0d10
- Remove redundant condition in dd01c74a6f
- Make
php_cli_server_pdeathsig.phpt
SKIPIF
more specific in bad5298707 - Move installation of oracle instant client in GHA in ba07a0b846
- Switch asan build to Ubuntu 23.04 in Docker in c9e5e1fc52
- Fix type macros for C++ in 5ad658bc5e
- Fix missing instantclient in CI in f3bd027b69
- Fix variable resource ids in odbc test in d1a38e8b8e
- Make unrepeatable tests retriable in f2c16b7ba3
Jakub Zelenka
- Introduce Zend guard recursion protection in 53aa53f42f
- FPM tester FastCGI client transport in GH-11764
- Fix GH-11982: str_getcsv returns null byte for unterminated quoted string in aff46d75e1
- Format UPGRADING in 10e16347ef
- Fix flaky file stat tests due to changing nature of atime in e1396a314d
- Fix bug #52335 (
fseek()
on memory stream behavior different then file) in ba9650d697 - Fix bug #76857: Can read "non-existant" files in 766cac072f
- Expand file path in file stat only for wrapper path in GH-12068
- Small tyding up of filestat code in 4e7ab1478d
- Update API versions and numbers in 2eb21b0b1e
- Update version for PHP 8.3.0RC1 in 6f1beccf15
Jeremie Courreges-Anglas
- On riscv64 require libatomic if actually needed in bf3fb4e5c9
Jorg Adam Sowa
jrfnl
- Remove
mysqli.reconnect
from php.ini files in GH-11836
ju1ius
- Adds support for DNF types in internal functions and properties in GH-11969
- releases property attributes of internal classes in GH-11980
Kamil Tekiela
- Fix implicit/explicit port in mysqlnd in c1103a9772
- Fix failing test on nightly in ffd398b4fe
- Fix param name in
implode()
error message in b1ce1d1f21
Mikhail Galanin
- Set CLOEXEC on listened/accepted sockets in the FPM children in 418cdc0bea
Máté Kocsis
- Add more test coverage for
ext/odbc
in 66acaba9db - Enable
ext/odbc
andext/pdo_odbc
tests on Linux in GitHub CI in 985511e968 - Improve and fix
ext/odbc
tests in 8726ae0601 - Expose PDO_ODBC_TYPE to userland in 462792ee51
- Fix GH-9967 Add support for generating custom function, class const, and property attributes in stubs in c934e24197
- Use correct format specifier in 9dcdfa5e3f
- Improve test for
odbc_columns()
in 2f9f2928ce
Niels Dossche
- Fix various namespace prefix conflict resolution bugs and namespace shift bugs in d46dc5694c
- Add test for
SimpleXMLElement::asXML()
with a fragment and a filename in 2b61f71046 - Remove unnecessary invalidation from processing instructions in 4ff93f779c
- Fix memory leak when setting an invalid DOMDocument encoding in 20ac42e1b0
- Update DOM test to work around libxml2 bug in 0fd226c277
- Improve warning when returning null from the resolver set by libxml_set_external_entity_loader in e1cb721679
- Add missing EXTENSIONS section to DOM tests in bffc74474b
- Remove useless duplicated call to
php_stream_parse_fopen_modes
in GH-12059 - Fix oss-fuzz #61712: assertion failure with error handler during binary op in a3a3964497
- Implement GH-11934: Allow to pass CData into struct and/or union fields in 0b9702c9ed
Peter Kokot
- Remove unused call to Makefile.frag in
ext/zip
in c180e9b48a - Add all README.* files to paths-ignore in GH-12003
- Sync
--enable-mysqlnd-compression-support
option in GH-12006 - Fix passing null to parameter of type string in GH-12014
- Fix configure phpdbg help output in GH-12013
- Remove unneeded
zend_language_parser.h
patch in GH-11974
Remi Collet
- Fix GH-12063 convert PHP single-quote to C double-quote string in 13d3564a51