PHP 8.0 is currently only receiving security fixes. PHP 8.0.22 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.22 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.0.22
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.22-x64NTS.zip (25.52 MiB)
php-8.0.22-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.22-x64TS.zip (25.62 MiB)
php-8.0.22-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.22-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.0.22-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.22-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.0.22-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.22-fpm
ChangeLog
CLI
- Fixed potential overflow for the builtin server via the
PHP_CLI_SERVER_WORKERS
environment variable.
Core
- Fixed bug GH-8923 (error_log on Windows can hold the file write lock).
- Fixed bug GH-8995 (WeakMap object reference offset causing TypeError).
Date
- Fixed bug #80047 (DatePeriod doesn't warn with custom DateTimeImmutable).
DBA
- Fixed LMDB driver hanging when attempting to delete a non-existing key
FPM
- Fixed zlog message prepend, free on incorrect address.
- Fixed possible double free on configuration loading failure.
GD
- Fixed bug GH-8848 (
imagecopyresized()
error refers to the wrong argument).
Intl
- Fixed build for ICU 69.x and onwards.
OPcache
- Fixed bug GH-8847 (PHP hanging infinitly at 100% cpu when check php syntaxe of a valid file).
Standard
- Fixed the crypt_sha256/512 api build with clang > 12.
- Uses CCRandomGenerateBytes instead of arc4random_buf on macOs.
Commit List
Christoph M. Becker
- Fix GH-8848:
imagecopyresized()
error refers to the wrong argument in 9405f43ba9 - Fix GH-8923: error_log on Windows can hold the file write lock in 77e954afaa
David Carlier
- Fix the crypt sha apis build (with recent clang versions) in b3569865b3
- intl extension, build fix for icu >= 69.x release. ubrk/ucnv_safeClone had been deprecated in favor of ubrk/ucnv_clone which does not use user provided stacks but remain thread safe in 7c3dfbb845
David CARLIER
- random extension macOs handling update in d830a1f6f0
- Revert "FPM: Downgrade occasional "failed to acquire scoreboard" warning" in 2a5b2cca85
Derick Rethans
- Fixed #80047: DatePeriod doesn't warn with custom DateTimeImmutable in 973c3f6e24
- Fixed bug #80047 (DatePeriod doesn't warn with custom DateTimeImmutable) in f3738d6900
- Revert "Fixed #80047: DatePeriod doesn't warn with custom DateTimeImmutable" in 6b38fcdbbe
Dmitry Stogov
- Fixed bug GH-8847 (PHP hanging infinitly at 100% cpu when check php syntaxe of a valid file) in 7cf6f17383
- Fix incorrect condition introdused in 7cf6f173 in d66d477d6f
- Fix type inference for FETCH_DI_UNSET in bd30eff5de
Felix Wiedemann
- FPM: Downgrade occasional "failed to acquire scoreboard" warning in 3040f75f43
Gabriel Caruso
- Prepare for 8.0.22 in fcd69a4e2b
- Update versions for PHP 8.0.22 in 741e6c2506
George Peter Banyard
- Abort LMDB transaction whe trying to delete non-existing key in 8fce70ae7b
- Revert "Fix GH-8563 Different results for
seek()
on SplFileObject and SplTempFileObject" in 79a283240e
Grégoire Paris
- Use proper grammar in error message in 13f55d5c1b
guoyiyuan
- Prevent potential buffer overflow for large value of
php_cli_server_workers_max
in 789a37f144
Heiko Weber
- FPM: zlog, fix free on wrong address for message prepend in 325ca31dcf
- FPM: Fix possible double free on configuration load failure in bd6793372b
Ilija Tovilo
- Add test coverage job in b7f0950ffe
Tobias Bachert
- Fix
WeakMap
object reference offset causingTypeError
in GH-8995