PHP 8.0 is currently only receiving security fixes. PHP 8.0.24 is not the latest version in the series, and using this release is not recommended. PHP 8.0.30 is the latest in the series.
Downloads
Source Code
Git Clone
Use Git to clone the 8.0.24 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.0.24
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.0.24-x64NTS.zip (25.52 MiB)
php-8.0.24-x86NTS.zip (23.65 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.0.24-x64TS.zip (25.63 MiB)
php-8.0.24-x86TS.zip (23.64 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.0.24-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.0.24-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.0.24-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.0.24-apache
Debian-based NTS FPM: PHP-FPM, can be integrated with Nginx, Caddy, and other web servers over Fast CGI.
docker pull php:8.0.24-fpm
ChangeLog
Core
- Fixed bug GH-9323 (Crash in
ZEND_RETURN
/GC/zend_call_function
) - Fixed bug GH-9361 (Segmentation fault on script exit #9379).
- Fixed bug GH-9407 (LSP error in eval'd code refers to wrong class for static type).
- Fixed bug #81727: Don't mangle HTTP variable names that clash with ones that have a specific semantic meaning. (CVE-2022-31629).
DOM
- Fixed bug #79451 (DOMDocument->replaceChild on doctype causes double free).
FPM
- Fixed bug GH-8885 (FPM access.log with stderr begins to write logs to error_log after daemon reload).
- Fixed bug #77780 ("Headers already sent..." when previous connection was aborted).
GMP
- Fixed bug GH-9308 (GMP throws the wrong error when a GMP object is passed to
gmp_init()
).
Intl
- Fixed bug GH-9421 (Incorrect argument number for ValueError in NumberFormatter).
PDO_PGSQL
- Fixed bug GH-9411 (PgSQL large object resource is incorrectly closed).
Phar
- Fixed bug #81726: phar wrapper: DOS when using quine gzip file. (CVE-2022-31628).
Reflection
- Fixed bug GH-8932 (ReflectionFunction provides no way to get the called class of a Closure).
- Fixed bug GH-9409 (Private method is incorrectly dumped as "overwrites").
Streams
- Fixed bug GH-9316 ($http_response_header is wrong for long status line).
Commit List
Arnaud Le Blanc
- Add tests in db1ef97209
Christoph M. Becker
- Fix GH-9316: $http_response_header is wrong for long status line in 72da418719
- Fix GH-9361: Segmentation fault on script exit in bb341210f5
- xmlRelaxNGCleanupTypes() is deprecated as of libxml2 2.10.0 in f59754694e
- Revert "Fix GH-9296:
ksort
behaves incorrectly on arrays with mixed keys" in 725cb4e8ad - Fix #81726: phar wrapper: DOS when using quine gzip file in ef6fe39116
- Fix regression introduced by fixing bug 81726 in c34b452570
David Carlier
- opcache jit fix message format for OpenBSD in 52e312afb8
- FPM fix strict prototype warnings in e2a5428ca0
Derick Rethans
- Fix #81727: Don't mangle HTTP variable names that clash with ones that have a specific semantic meaning in c332950a86
Dmitry Menshikov
- Fix GH-8885: access.log with stderr writes logs to error_log after reload in f92505cf24
Dmitry Stogov
- Tracing JIT: Fix incorrect guard elimination in c9c51eb1f1
- Fix memory leaks in 73c2d79fc5
- JIT: Make code generation to be consistent with register allocation in fd74ee7e90
- Fix
ext/opcache/tests/jit/inc_obj_004.phpt
failure introduced by fd74ee7e in ce42dcf483 - Fix memory leak in 4135e6011c
- typo in 263a07e5b0
- Fix type inference in 81cb005ef7
- Reset FG(user_stream_current_filename) at the end of request in d0b3096ff0
Gabriel Caruso
- Prepare for 8.0.24 in 7c6316ad1c
George Peter Banyard
- Revert Fixed bug #79451 in d6831e9a5c
- Fix GH-9308 GMP throws the wrong error when a GMP object is passed to
gmp_init()
in 293e69179d - Fix GH-9421 Incorrect argument number for ValueError in NumberFormatter in 47500f3300
Ilija Tovilo
- Private method incorrectly marked as "overwrites" in reflection in 1435fc6262
- Fix lsp error in eval'd code referring to incorrect class for static type in d5373eac46
- Fix undefined left shift in oci in aa7f4497bf
- Skip oci tests that leak under asan in 4a8cca241f
Jakub Zelenka
- Fix GH-9339: OpenSSL oid_file path check warning contains uninitialized path in 84dcf578b1
- Fix GH-8885 tests on MacOS in bcdd9877e1
- Re-add fixed tests for GH-8885 in 986e7319c5
- Fix bug #77780: "Headers already sent" when previous connection was aborted in 3503b1daa2
Michael Voříšek
- Fix pdo_oci tests for PHP 8.0 in 305892580e
- Test oci8 & pdo_oci in CI in c19116ff09
- Fix oci8/pdo_oci random test failures when run in parallel in be4dd60c55
- Fix GH-8348 for nightly in 34d9e089c2
- Fix pdo_dblib ext test conflicts when run in parallel in f86629569c
- Always skip randomly failing OCI8 extauth tests in 9a73ec0367
NathanFreeman
- Fix bug #79451: Using DOMDocument->replaceChild on doctype causes double free in 1d4300d870
- Fix #79451: DOMDocument->replaceChild on doctype causes double free in 6027d441c1
Nicolas Grekas
Sara Golemon
- Catch up dev version numbers in 3d6ed8c852
- Sec fix NEWS entries in 8257e596cf
- Update versions for PHP 8.0.24 in b3034f5d05
Tim Starling
- Fix GCC 9.4 uninitialized variable warning in 410e5d48a3
- Fix GH-9323: crash when the VM enters userspace code via the GC in ba029fce68
Yurun
- Fix GH-9411: PgSQL large object resource is incorrectly closed in 6ac3f7c84d