Release Information
- Release Type
- Bug Fix Release
- Release Status
- Latest
- Branch Status
- Supported (Latest)
Latest PHP release in the latest version.
PHP 8.5 continues to receive bug fixes and security fixes until 2027-12-31.
Downloads
Source Code
Git Clone
Use Git to clone the 8.5.3 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.5.3How 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.5.3-x64NTS.zip
Size: 33.32 MiB SHA256:
53919383d27fdd6ea96457b887e8a1d102bca6242952ad074500bde90c592cc9 php-8.5.3-x86NTS.zip
Size: 29.8 MiB SHA256:
964fe7008a3d72079bb858fdcfe83bab94ae8fa5a6bcc8f4a7ed51e45e3f7130 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.5.3-x64TS.zip
Size: 33.45 MiB SHA256:
636077a9e976b19f3b4a2b47b439a144f24ab69a7e429b6e9001818723eb77b2 php-8.5.3-x86TS.zip
Size: 29.86 MiB SHA256:
a03937288bbb31e2382529d1a2218d623d7661ecf16ab095c00066fd0467ca78 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.5.3-cli-alpineDebian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.5.3-cliPHP 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.5.3-fpm-alpineDebian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.5.3-apacheDebian-based NTS FPM: PHP-FPM, can be integrated with Nginx, Caddy, and other web servers over Fast CGI.
docker pull php:8.5.3-fpmChangeLog
Core
- Fixed bug GH-20806 (preserve_none feature compatiblity with LTO).
- Fixed bug GH-20767 (build failure with musttail/preserve_none feature on macOs).
- Fixed bug GH-20837 (NULL dereference when calling
ob_start()in shutdown function triggered by bailout inphp_output_lock_error()). - Fix OSS-Fuzz #471533782 (Infinite loop in GC destructor fiber).
- Fix OSS-Fuzz #472563272 (Borked block_pass JMP[N]Z optimization).
- Fixed bug GH-20914 (Internal enums can be cloned and compared).
- Fix OSS-Fuzz #474613951 (Leaked parent property default value).
- Fixed bug GH-20895 (ReflectionProperty does not return the PHPDoc of a property if it contains an attribute with a Closure).
- Fixed bug GH-20766 (Use-after-free in FE_FREE with GC interaction).
- Fix OSS-Fuzz #471486164 (Broken by-ref assignment to uninitialized hooked backing value).
- Fix OSS-Fuzz #438780145 (Nested finally with repeated return type check may uaf).
- Fixed bug GH-20905 (Lazy proxy bailing
__cloneassertion). - Fixed bug GH-20479 (Hooked object properties overflow).
Date
- Update timelib to 2022.16.
DOM
- Fixed GH-21041 (Dom\HTMLDocument corrupts closing tags within scripts).
MbString
- Fixed bug GH-20833 (
mb_str_pad()divide by zero if padding string is invalid in the encoding). - Fixed bug GH-20836 (Stack overflow in
mb_convert_variableswith recursive array references).
Opcache
- Fixed bug GH-20818 (Segfault in Tracing JIT with object reference).
OpenSSL
- Fix memory leaks when sk_X509_new_null() fails.
- Fix crash when in
openssl_x509_parse()when i2s_ASN1_INTEGER() fails. - Fix crash in
openssl_x509_parse()when X509_NAME_oneline() fails.
Phar
- Fixed bug GH-20882 (buildFromIterator breaks with missing base directory).
PGSQL
- Fixed INSERT/UPDATE queries building with PQescapeIdentifier() and possible UB.
Readline
- Fixed bug GH-18139 (Memory leak when overriding some settings via
readline_info()).
SPL
- Fixed bug GH-20856 (heap-use-after-free in SplDoublyLinkedList iterator when modifying during iteration).
Standard
Commit List
Alexander Borisov
- Fix GH-21041: Dom\HTMLDocument corrupts closing tags within scripts in 56e5a80c44
Alexandre Daubois
Arnaud Le Blanc
- Set default_object_handlers when registering internal enums in 075b6b85f6
- NEWS in b273fc7aca
Ben Ramsey
- PHP 8.1 is now end-of-life in 6f82565f12
Bob Weinand
- Split the live-ranges of loop variables again in GH-20865
- Regenerate VM after merge in 82e2055300
Calvin Buckley
- Fix
skipiffor mkfifo usage ingh20582.phptin GH-20804
Chris Hasiński
- Fix segfault in Tracing JIT with object reference (GH-20818) in 1db1c7f5c1
Daniel Scherzer
- [8.5] NEWS: add some missing RFC entries in GH-20693
- GitHub actions: drop more 8.1 CI configuration in GH-20763
David Carlier
- Fix GH-20767: build failure with preserve_none attribute enabled on mac in 95a83956a4
- Fix GH-20802: undefined behavior with invalid SNI_server_certs options in cdcc0c2cd8
- Fix GH-20840: crash on nested object with
var_dump()in 5d2456f974 - exp/pgsql: insert/update query string build possible UB fix in 5785ff7728
Derick Rethans
- Updated to version 2025.3 (2025c) in 2670c8646d
- Empty merge in c42eedc088
- Updated to version 2025.3 (2025c) in 65e316e89c
- Empty merge in f1ed1e1d87
- Updated to version 2025.3 (2025c) in 771dbda6fb
- Upgrade timelib to 2022.16 in e208cd86b4
- Revert "Upgrade timelib to 2022.16" in cfbfc1b6f6
- Revert "Updated to version 2025.3 (2025c)" in ba1f3d9a87
- Update generated parser file in c929f2aa87
Dmitry Stogov
- Update IR in GH-20916
Frank Denis
ext/sodium: use correct constants and error messages in GH-20852
henderkes
- Make preserve_none check lto compatible in 02a6fecb97
- Remove duplicate no/yes print for preserve_none in 7b70ee5a9d
Ilija Tovilo
- Fix infinite loop in GC destructor fiber in 6f6c9e35e8
- Fix block_pass JMP[N]Z optimization in f61b1fc036
- Fix leaked parent property default value in 4bfaf549f6
- Avoid huge output in
gh20840.phptin 462fcad419 - Fix by-ref assignment to uninitialized hooked backing value in 0efecbc432
- Fix uaf for nested finally with repeated return type check in 19b30032c9
- Fix
run-tests.php-s flag in ee5fc4a030 - Fix lazy proxy bailing
__cloneassertion in f38f74521b
Jakub Zelenka
- Fix bug #74357: lchown fails to change ownership of symlink with ZTS in 91ac825278
- Update NEWS with fix for bug #74357 in 1c9f117d74
Michael Orlitzky
ext/dba/tests/dba_db4_018.phpt: fix typo in GH-20938
Máté Kocsis
- Fix constant references inside parameter default values when generating the manual in eb1e22b1df
- Reorganize
ext/uritests - equivalence in GH-20391
Niels Dossche
- Fix GH-18139: Memory leak when overriding some settings via
readline_info()in 30ed81314b - uri: Fix RFC3986 to_string implementation with ExcludeFragment returning non-terminated strings in GH-20811
- streams/memory: Ensure internal string is NUL terminated in GH-20812
- Fix GH-20833:
mb_str_pad()divide by zero if padding string is invalid in the encoding in 03113b09ce - fastcgi: Fix compile warning wrt
safe_read()in GH-20887 - Fix GH-20882: phar buildFromIterator breaks with missing base directory in a6e0d8e359
- Fix GH-20856: heap-use-after-free in SplDoublyLinkedList iterator when modifying during iteration in 2a2e0e8128
- Fix bug52820 test for new libcurl release in 636f84adcf
- Add test for GH-20880 in GH-20919
- Fix GH-20890: Segfault in zval_undefined_cv with non-simple property hook with minimal tracing JIT in 57c62eb2b3
- Revert "Fix GH-20890: Segfault in zval_undefined_cv with non-simple property hook with minimal tracing JIT" in 32c0245531
- Fix hooked object properties overflow in d9cbc3117c
- Fix memory leaks when sk_X509_new_null() fails in 7754eafb1f
- Fix crash when in
openssl_x509_parse()when i2s_ASN1_INTEGER() fails in c2eadb4922 - Fix crash in
openssl_x509_parse()when X509_NAME_oneline() fails in 62afc7a2fa
Peter Kokot
- Use PHP 8+ square brackets for array elements in c4084bb8f3
Remi Collet
- Fix missing liburiparser linker option in 9b089edcbd
Tim Düsterhus
- output: Fail starting to output buffer when the output layer is deactivated in GH-20846
zend_language_parser: Backup / restore doc comment when parsing attributes in GH-20896
Volker Dusch
- Update versions for PHP 8.5.3 in f665c20219