PHP 8.0 is currently only receiving security fixes. PHP 8.0.10 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.10 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.0.10
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.10-x64NTS.zip (25.4 MiB)
php-8.0.10-x86NTS.zip (23.55 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.10-x64TS.zip (25.5 MiB)
php-8.0.10-x86TS.zip (23.54 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.10-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.0.10-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.10-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.0.10-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.10-fpm
ChangeLog
Core
- Fixed bug #72595 (
php_output_handler_append
illegal write access). - Fixed bug #66719 (Weird behaviour when using
get_called_class()
withcall_user_func()
). - Fixed bug #81305 (Built-in Webserver Drops Requests With "Upgrade" Header).
BCMath
- Fixed bug #78238 (BCMath returns "-0").
CGI
- Fixed bug #80849 (HTTP Status header truncation).
Date
- Fixed bug #64975 (Error parsing when AM/PM not at the end).
- Fixed bug #78984 (DateTimeZone accepting invalid UTC timezones).
- Fixed bug #79580 (date_create_from_format misses leap year).
- Fixed bug #80409 (
DateTime::modify()
loses time with 'weekday' parameter).
GD
- Fixed bug #51498 (imagefilledellipse does not work for large circles).
MySQLi
- Fixed bug #74544 (Integer overflow in
mysqli_real_escape_string()
).
Opcache
- Fixed bug #81225 (Wrong result with pow operator with JIT enabled).
- Fixed bug #81249 (Intermittent property assignment failure with JIT enabled).
- Fixed bug #81206 (Multiple PHP processes crash with JIT enabled).
- Fixed bug #81272 (Segfault in var[] after
array_slice
with JIT). - Fixed Bug #81255 (Memory leak in PHPUnit with functional JIT).
- Fixed Bug #80959 (infinite loop in building cfg during JIT compilation)
- Fixed bug #81226 (Integer overflow behavior is different with JIT enabled).
OpenSSL
- Fixed bug #81327 (Error build openssl extension on php 7.4.22).
PDO_ODBC
- Fixed bug #81252 (PDO_ODBC doesn't account for SQL_NO_TOTAL).
Shmop
- Fixed bug #81283 (shmop can't read beyond 2147483647 bytes).
SimpleXML
- Fixed bug #81325 (Segfault in zif_simplexml_import_dom).
Standard
- Fixed bug #72146 (Integer overflow on substr_replace).
- Fixed bug #81265 (getimagesize returns 0 for 256px ICO images).
- Fixed bug #74960 (Heap buffer overflow via str_repeat).
Streams
- Fixed bug #81294 (Segfault when removing a filter).
Commit List
Christoph M. Becker
- Fix #72146: Integer overflow on substr_replace in 33f8dfb15a
- Fix #72595:
php_output_handler_append
illegal write access in a942cf5b02 - Fix #80849: HTTP Status header truncation in a054ef2aad
- Fix #78238: BCMath returns "-0" in bcb89c75ec
- Fix #81206: Multiple PHP processes crash with JIT enabled in ef77d3c89f
- Revert "Fix #79908: json_encode encodes negative zero as int" in 2d2c001ca5
- Fix #74960: Heap buffer overflow via str_repeat in 760ff841a1
- Fix #81283: shmop can't read beyond 2147483647 bytes in 387c0de983
- Fix #81294: Segfault when removing a filter in 1fa26eccba
- Fix #81252: PDO_ODBC doesn't account for SQL_NO_TOTAL in 98049e8b9a
- Fix #81305: Built-in Webserver Drops Requests With "Upgrade" Header in d1ccb5bd0c
- Fix #51498: imagefilledellipse does not work for large circles in c565555f03
- Fix #81327: Error build openssl extension on php 7.4.22 in 6724d5d4c2
- Fix #74544: Integer overflow in
mysqli_real_escape_string()
in 5977610de1 - Fix #81211: Symlinks are followed when creating PHAR archive in bfb5191cb6
Derick Rethans
- Move date timezone cache destruction to post deactivate in 26b1572d37
- Upgrade timelib to version 2020.03 in 4aeff60f34
- Prepare for 7.4.24 in 79d564a8cc
Dmitry Stogov
- Fixed bug #81225 (Wrong result with pow operator with JIT enabled) in 9cd437138e
- Skip test on 32-bit system in ee981619ce
- Fixed bug #81249 (Intermittent property assignment failure with JIT enabled) in c0e4932816
- Avoid ASAN integer overflow warnings in 15abbea5e7
- Fixed Bug #81255 (Memory leak in PHPUnit with functional JIT) in 02acc5ad3b
- Fixed Bug #80959 (infinite loop in building cfg during JIT compilation) in a9991fbf28
- Fixed bug #81226 (Integer overflow behavior is different with JIT enabled) in 053c56f52e
- Added test in 17b5fe13e2
- Fixed typo in 8fbeebec34
Gabriel Caruso
- Remove 8.0.11 changelog in b182acdcc2
- Fix changelog for PHP 8.0.10 in 5c6d1b76fe
- Prepare for PHP 8.0.10 in 9874ae5cbe
- Update versions for PHP 8.0.10 in 55778e1276
George Dietrich
- Fix bug #81265: getimagesize returns 0 for 256px ICO images in 8f97f82e35
Hao Sun
- Fixed incorrec immediate encoding when using LEA optimization in c5d93aeee9
Joe Watkins
- retry ldap setup a few times in CI in 0ba6ddefd5
Kamil Tekiela
- Prevent mysqli::next_result from reporting errors from previous calls in GH-7304
Máté Kocsis
- Fix some return types in
ext/spl
in d618ed0a2d - Fix some more
ext/spl
return types in fc6656e0ac - Fix DOMNameSpaceNode casing in ee11a6065c
Nikita Popov
- Backport some intl stub changes from master in 2afbacc16d
- Drop incorrect cache_slot optimization for typed properties in ba8bcf3992
- Add exception check to
zend_jit_fetch_obj_w_slow()
in 6fd880890c - Undef slot before destroying in unset_property in ebd3a21002
- Fix RecursiveIteratorIterator segfault for invalid aggregate in b9ae73eee9
- Fix bug #81272: Fix func info for functions returning EMPTY_ARRAY in 051ff33660
- Create persistent interned string for password algos in b0d4d6ebb4
- Duplicate possibly persistent string in phar metadata clone in 9726bc6977
- Create interned strings for internal union types in bd2cd2617b
dom_import_simplexml()
cannot return null in a0893865b3- Fix bug #66719 in dfd05da97f
- Fix parameter name in
call_user_func()
error message in 840e441d2d - Fix parameter name in
count()
error message in 6c7b322de2
Remi Collet
- Fix bug #81325 Segfault in zif_simplexml_import_dom in 112527d677
- NEWS in 35c3e0b1a4
- typo in 940c35366d
Sara Golemon
- Bump to 8.0.10 in 7dc35ac8a7
Stanislav Malyshev
- Update NEWS in e8684852df
- Fix test in ad8038fd94