PHP 8.3.3 is an old release of PHP 8.3 series. Using the latest version PHP 8.3.13 is highly recommended.
PHP 8.3 continues to receive bug fixes and security fixes until 2025-12-31.
Downloads
Source Code
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.3.3
./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
Docker/Podman Containers
docker pull php:8.3.3-cli-alpine
docker pull php:8.3.3-cli
docker pull php:8.3.3-fpm-alpine
docker pull php:8.3.3-apache
docker pull php:8.3.3-fpm
ChangeLog
Core
- Fixed timer leak in zend-max-execution-timers builds.
- Fixed bug GH-12349 (linking failure on ARM with mold).
- Fixed bug GH-13097 (Anonymous class reference in trigger_error / thrown Exception).
- Fixed bug GH-13177 (PHP 8.3.2: final private constructor not allowed when used in trait).
- Fixed bug GH-13215 (GCC 14 build failure).
Curl
- Fix missing error check in
curl_multi_init()
.
FPM
- Fixed bug GH-12996 (Incorrect SCRIPT_NAME with Apache ProxyPassMatch when plus in path).
GD
- Fixed bug GH-10344 (
imagettfbbox()
: Could not find/open font UNC path). - Fixed bug GH-10614 (imagerotate will turn the picture all black, when rotated 90).
LibXML
- Fix crashes with entity references and predefined entities.
MySQLnd
- Fixed bug GH-12107 (When running a stored procedure (that returns a result set) twice, PHP crashes).
Opcache
- Fixed bug GH-13145 (
strtok()
is not comptime). - Fixed type inference of range().
- Fixed bug GH-13232 (Segmentation fault will be reported when JIT is off but JIT_debug is still on).
OpenSSL
- Fixed LibreSSL undefined reference when OPENSSL_NO_ENGINE not set.
PDO_Firebird
- Fix GH-13119 (Changed to convert float and double values into strings using
H
format).
Phar
- Fixed bug #71465 (PHAR doesn't know about litespeed).
- Fixed bug GH-13037 (PharData incorrectly extracts zip file).
Random
- Fixed bug GH-13138 (
Randomizer::pickArrayKeys()
does not detect broken engines).
Session
- Fixed bug GH-12504 (Corrupted session written when there's a fatal error in autoloader).
Standard
- Fixed bug GH-13094 (range(9.9, '0') causes segmentation fault).
Streams
- Fixed bug GH-13071 (Copying large files using mmap-able source streams may exhaust available memory and fail).
Commit List
Alex Dowad
- Do not allow zend.script_encoding to be set to 'pass' in 1e92d47f41
- Fix segfault caused by use of 'pass' encoding when mbstring converts multipart form POST data in 67051eb8ed
- Retroactively add NEWS entry for ec348a12 in d978ade0a9
David Carlier
ext/intl
: fix bug introduced by 5455c3f in 96ffe6ad7eext/gd
: Fix GH-13082 in 1e464e5b55ext/openssl
: fix libressl build in 5e2a586c9aext/gd
disable gh13082 test for travis in 8d4e177d82
Derick Rethans
- Move most of this to https://github.com/php/policies as per Policies RFC in 7c354b7cf2
divinity76
- Fix missing error check in
curl_multi_init()
in 9814d4a191
Dmitry Stogov
- Disable inlining and inter-procedure-analyses for
zend_string_equal_val()
function that may be overriden for valgrind in GH-13099 - Fix
zend_may_throw()
for FETCH_DIM_IS and ISSET_ISEMPTY_DIM_OBJ in b33e3eb8c2 - Wrap cleanup function call with
zend_try
in b45e7a613f - Fix GH-12481: PHP crash with JIT enabled in f120ac93a1
- Fix GH-13193: Significant performance degradation in 'foreach' starting from PHP 8.2.13 (caused by garbage collection) in GH-13265
Eric Mann
- Update versions for PHP 8.3.3 in 3a832a2aad
Ilija Tovilo
- Fix
run-tests.php
differ calculateCommonSubsequence for EXPECTF in 379e913e1a - strtok is not
comptime()
in ed64949d12 - Fix range inference since "proper-range-semantics" RFC in 42cbace1ad
- Fix dumping of zend_string.val in gdb in f18710e362
- Fix create_object checks in 3a5edcca47
Jakub Zelenka
- Fix GH-12996: Incorrect SCRIPT_NAME with Apache ProxyPassMatch when plus in path in b04b09ef56
Jan Palus
- Set libtool tag per command instead of global one in d57a7767a2
Máté Kocsis
- Backport upgrading PHP-Parser to PHP-8.3 in 10e8a0d17e
Niels Dossche
- Fix #71465: PHAR doesn't know about litespeed in 85dbbe19e2
- Fix GH-13094: range(9.9, '0') causes segmentation fault in 1d6f344bea
- Fix phar/tests/bug77432.phpt in 5a988d5764
- Follow-up fix for GH-13082 in df85c2556e
- Use getenv to prevent undefined key warning in cd483f136c
- Fix GH-13097: Anonymous class reference in trigger_error / thrown Exception in 2cde4b2ea4
- Fix GH-13071: Copying large files using mmap-able source streams may exhaust available memory and fail in 5e9e9c9d51
- Fix crashes with entity references and predefined entities in 120bd364aa
- Fix GH-12107: When running a stored procedure (that returns a result set) twice, PHP crashes in 0d21a8dcb5
- Fix GH-13177: PHP 8.3.2: final private constructor not allowed when used in trait in c2c1710ed7
- Fix GH-12504: Corrupted session written when there's a fatal error in autoloader in 7f7031eb72
- Fix GH-13232: Segmentation fault will be reported when JIT is off but JIT_debug is still on in d417072ebe
- Fix GH-13037: PharData incorrectly extracts zip file in ba80372a58
- Fix GH-10344:
imagettfbbox()
: Could not find/open font UNC path in 4a48729438 - Fix GH-10614: imagerotate will turn the picture all black, when rotated 90 in f26dd1354b
Peter Kokot
- Update year to 2024 in 2575e6b88c
Remi Collet
- Fix GH-13215 GCC 14 build in 7252660941
- NEWS in 242f89283e
- NEWS in fae27cd8c4
Rob Landers
- Fix timer leak in GH-13027
SakiTakamachi
Tim Düsterhus
- random/standard: Correctly handle broken engines in
php_array_pick_keys
in GH-13138 - random/standard: Adjust GH-13138 for PHP 8.3 in 00ea756c93