PHP 8.0 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 8.0.21 is not recommended. PHP 8.0.30 is the latest version in the series.
Downloads
Source Code
Git Clone
Use Git to clone the 8.0.21 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.0.21
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.21-x64NTS.zip (25.52 MiB)
php-8.0.21-x86NTS.zip (23.64 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.21-x64TS.zip (25.62 MiB)
php-8.0.21-x86TS.zip (23.63 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.21-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.0.21-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.21-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.0.21-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.21-fpm
ChangeLog
Core
- Fixed potential use after free in
php_binary_init()
.
CLI
- Fixed GH-8827 (Intentionally closing std handles no longer possible).
COM
- Fixed bug GH-8778 (Integer arithmethic with large number variants fails).
Curl
- Fixed CURLOPT_TLSAUTH_TYPE is not treated as a string option.
Date
- Fixed bug #74671 (DST timezone abbreviation has incorrect offset).
- Fixed bug #77243 (Weekdays are calculated incorrectly for negative years).
- Fixed bug #78139 (timezone_open accepts invalid timezone string argument).
FPM
- Fixed bug #67764 (fpm: syslog.ident don't work).
MBString
- Fixed bug GH-8685 (pcre not ready at mbstring startup).
ODBC
- Fixed handling of single-key connection strings.
OpenSSL
- Fixed bug #50293 (Several openssl functions ignore the VCWD).
- Fixed bug #81713 (NULL byte injection in several OpenSSL functions working with certificates).
PDO_ODBC
- Fixed errorInfo() result on successful PDOStatement->execute().
- Fixed handling of single-key connection strings.
Zip
- Fixed bug GH-8781 (
ZipArchive::close
deletes zip file without updating stat cache).
Commit List
Athos Ribeiro
- Fix detection of unknown gcc function attributes in 813d942bac
Calvin Buckley
- Fix handling of single-key connection strings in 445d9502bf
Christoph M. Becker
- Fix #81720: Uninitialized array in
pg_query_params()
leading to RCE in 55f6895f4b - Fix GH-8778: Integer arithmethic with large number variants fails in 651e0cc187
- Fix GH-8827: Intentionally closing std handles no longer possible in a8437d08a8
David Carlier
- Revert "Fix detection of unknown gcc function attributes" in 0a47fdf538
Derick Rethans
- Fixed bug #76963 (Null-byte injection in createFromFormat) in dfd1d7a531
- Fixed bug #72963 (Null-byte injection in CreateFromFormat and related functions) in 2dcd82162e
- Fixed tests in 209ea3ffc7
- Update NEWS in 172b7345b1
- Fixed bug #74671 (DST timezone abbreviation has incorrect offset) in 6418eba1cd
- Mark test as
XFAIL
due to wrong assumptions in 8d6a828192 - Remove trailing whitespace from test in 63a31f3377
- Fixed bug #78139 (timezone_open accepts invalid timezone string argument) in d5e57268a9
- Bump version in 7.4 to 7.4.31-dev in 8fbeadcd45
- Fixed bug #77243 (Weekdays are calculated incorrectly for negative years) in 36990aab8e
- Skip tests on 32-bit in b23dfe4986
Dmitry Stogov
- Fix memory leak in 3a8912fb7c
- Fix memory leak in 088e5677fb
- Fix use after free in 0b8e471b3c
- JIT: Fix missing register store in 1cd8074743
- Fix memory leak in 229e80c6ef
Gabriel Caruso
- Update versions for PHP 8.0.21 in 6eedacdf15
- Revert "Update versions for PHP 8.0.21" in 8a233644fc
- Revert "Update versions for PHP 8.0.21" in 4aabfe911e
- Update versions for PHP 8.0.21 in 19fb306392
George Peter Banyard
- Backport fcba0a49 in 52eb52d652
- Fix GH-8563 Different results for
seek()
on SplFileObject and SplTempFileObject in 6f87a5c633 - Revert "Fix GH-8563 Different results for
seek()
on SplFileObject and SplTempFileObject" in 7988ae708f
Heiko Weber
- FPM: Fix use after free in
fpm_evaluate_full_path
in a83363e361 - Fix potential use after free in
php_binary_init()
in 93a44f8c50
Jakub Zelenka
- Fix bug #50293 and #81713: file path checking in OpenSSL functions in b765d4cd41
- Pass signature to openssl_verify in bug81713 test in cb9a48a0c5
- Fix and improve OpenSSL VCWD path checking test for bug #50293 in 2f78c1f9d9
- Fix bug #67764: fpm: syslog.ident does not work in e330f443c9
Matteo Beccati
- Fixed test in b90201745f
Pierrick Charron
- Fix LONG_CHECK_VALID_INT in socket extension in e2d55f2f12
- Fix bad integer promotion in mysqlnd big5 charset detection in df4dd82ea0
- Fixed CURLOPT_TLSAUTH_TYPE is not treated as a string option in d84b972658
Remi Collet
- Fix GH-8685 mbstring requires pcre in 2eb2f9d74f
- NEWS for GH-8685 in ae8c2bc1ce
- Fix GH-8781
ZipArchive::close
deletes zip file without updating stat cache in 390538af2e - NEWS in 26feb2e6f2
Sara Golemon
- Bump for 8.0.21 in e05897fe5e
Stanislav Malyshev
- Fix bug #81719: mysqlnd/pdo password buffer overflow in 58006537fc
- Update NEWS in d1be9369ad
Yurun
- Closes GH-8626: Fix PDOStatement->execute() failed in df52903ee0
- Fix dblib ghtest8626 test in bfe63f565f