PHP 8.0 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 8.0.9 is not recommended. PHP 8.0.30 is the latest version in the series.
Downloads
Source Code
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.0.9
./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
Docker/Podman Containers
docker pull php:8.0.9-cli-alpine
docker pull php:8.0.9-cli
docker pull php:8.0.9-fpm-alpine
docker pull php:8.0.9-apache
docker pull php:8.0.9-fpm
ChangeLog
Core
- Fixed bug #81145 (
copy()
andstream_copy_to_stream()
fail for +4GB files). - Fixed bug #81163 (incorrect handling of indirect vars in __sleep).
- Fixed bug #81159 (Object to int warning when using an object as a string offset).
- Fixed bug #80728 (PHP built-in web server resets timeout when it can kill the process).
- Fixed bug #73630 (Built-in Weberver - overwrite $_SERVER['request_uri']).
- Fixed bug #80173 (Using return value of
zend_assign_to_variable()
is not safe). - Fixed bug #73226 (--r[fcez] always return zero exit code).
Intl
- Fixed bug #72809 (
Locale::lookup()
wrong result with canonicalize option). - Fixed bug #68471 (IntlDateFormatter fails for "GMT+00:00" timezone).
- Fixed bug #74264 (
grapheme_strrpos()
broken for negative offsets).
OpenSSL
- Fixed bug #52093 (openssl_csr_sign truncates $serial).
PCRE
- Fixed bug #81101 (PCRE2 10.37 shows unexpected result).
- Fixed bug #81243 (Too much memory is allocated for
preg_replace()
).
Reflection
- Fixed bug #81208 (Segmentation fault while create newInstance from attribute).
Standard
- Fixed bug #81223 (
flock()
only locks first byte of file).
Commit List
Anatol Belski
- pcre: Workaround bug #81101 in 1a1d86d562
- pcre: Workaround bug #81101 in f7ab7951f1
- NEWS: Add bug #81101 note in 4d8eb892b9
- NEWS: Add bug #81101 note in 2b948720ab
Calvin Buckley
- Fix bug #80728: Don't reset the timeout on ini deactivate in 98a21d1dfb
Christoph M. Becker
- Fix #72809:
Locale::lookup()
wrong result with canonicalize option in 0f1b17e378 - Fix #81145:
copy()
andstream_copy_to_stream()
fail for +4GB files in 2555efadbc - Fix test in case fallocate(1) is available, but fails in 99e7c5cea8
- Fix #81122: SSRF bypass in FILTER_VALIDATE_URL in a5538c6229
- Fix #76452: Crash while parsing blob data in firebird_fetch_blob in 286162e9b0
- Fix #76450: SIGSEGV in firebird_stmt_execute in bcbf8aa0c9
- Fix #76449: SIGSEGV in firebird_handle_doer in 08da7c7372
- Fix #76448: Stack buffer overflow in firebird_info_cb in 67afa32541
- Fix #68471: IntlDateFormatter fails for "GMT+00:00" timezone in 1a01f7816c
- 7.3.30 is next in 53ea910d17
- Fix #73630: Built-in Weberver - overwrite $_SERVER['request_uri'] in d7db5701a3
- Fix new test for PHP 8 in 9b7b4c47d6
- Fix #52093: openssl_csr_sign truncates $serial in 334387bb70
- Avoid OOB reads in
create_name_with_username()
in b1840737e2 - Fix build in d86c25d88e
- Fix #74264:
grapheme_strrpos()
broken for negative offsets in 28c9376306 - Fix #81223:
flock()
only locks first byte of file in 520c00a5bf - Fix new test for PHP 8.0 in 52a00fe776
- Fix #81243: Too much memory is allocated for
preg_replace()
in a6b43086e6 - Fix #73226: --r[fcez] always return zero exit code in 9db3eda2cb
- exit_status is no longer a true global in 1631b96b4b
- Fix #79908: json_encode encodes negative zero as int in 717f1ed5e4
Derick Rethans
- Prepare for 7.4.22 in 8370a084e4
Dmitry Stogov
- Fixed incorrect type inference for "(array)$null" in df16fd149b
- JIT: Fixed failures of tracing JIT with CALL VM in 1082669e24
- JIT/x86: Fixed possible incorrect register allocation in ced8e88438
- JIT/x86: Fixed possible incorrect exception catching in function JIT in 99c0efc77a
Gabriel Caruso
- Prepare for PHP 8.0.9 in b81c3b5b1c
- Revert "Fix #79908: json_encode encodes negative zero as int" in f69035d903
- Prepare for PHP 8.0.9 GA in 78f7599d88
- Update versions for PHP 8.0.9 in a5368c55be
George Peter Banyard
- Fix bug #81159: Object to int warning when using an object as a string offset in f0fd5922ee
- Fix test in 351629ae15
Joe Watkins
- Fix bug #81163 indirect vars in __sleep in bc59b046c6
Máté Kocsis
- Various
ext/spl
stub fixes in 80e5ad5a29
Nikita Popov
- Fixed bug #81208 in b976bc44f1
- Fix leak on div by zero compound assignment with coercion in 540fed1b36
- Fix leak on foreach by ref assign to property in 36f5d719f5
- Fixed bug #80173 in bdc60fa7da
- Fix return value of wrong fucntion by-ref assign in 96bf925cde
- Add missing error condition to
stream_context_set_option()
in 1b01bf3a95 - Fix
ArrayObject::exchangeArray()
return type in bcefc31e4e - Fix use after free on compound division by zero in 62ecf54f35
- Fix constant update for shadowed private property in 58699ffcf1
- Test Laravel 8.x against PHP 7.4 in bb43aa2ed3
- Use newer PHP version in community job in 8cec7db48d
Stanislav Malyshev
- Update NEWS in c68a687566
- Fix warning in 190013787b
- Fix warning in 7bab67c2d0