PHP 8.1 is currently only receiving security fixes. PHP 8.1.11 is not the latest version in the series, and using this release is not recommended. PHP 8.1.30 is the latest in the series.
Downloads
Source Code
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.1.11
./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.1.11-cli-alpine
docker pull php:8.1.11-cli
docker pull php:8.1.11-fpm-alpine
docker pull php:8.1.11-apache
docker pull php:8.1.11-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-9447 (Invalid class FQN emitted by AST dump for new and class constants in constant expressions).
- 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).
PCRE
- Fixed pcre.jit on Apple Silicon.
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).
Streams
- Fixed bug GH-9316 ($http_response_header is wrong for long status line).
Commit List
Alex Dowad
- Reintroduce legacy 'SJIS-win' text encoding in mbstring in 371367ce3e
Arnaud Le Blanc
- Add tests in db1ef97209
- Check return value of
zend_jit_trace_get_exit_addr()
in GH-9097
Ben Ramsey
- Revert "Fix GH-9296:
ksort
behaves incorrectly on arrays with mixed keys" in 1862152145
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 tests in 65619e868c
- Fix #81726: phar wrapper: DOS when using quine gzip file in 4ef300ff5e
- Fix regression introduced by fixing bug 81726 in 168750bf3e
- Fix new
bug81726.phpt
for PHP 8.0 in 91abc41f21
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 6d9a4f3125
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 type inference in 95befc786a
- 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
- Fix bad merge in 5739dd0030
- 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
- Fix class name FQN when AST dumping new and class const in 2cfb028e22
- 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
- Fix
ZEND_RC_MOD_CHECK()
for thread local ini parser strings in 9af98cd465
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
- Fix pdo_oci tests for PHP 8.1 in 2db2cab6ad
- 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
- Fix
oci_success_with_info.phpt
test random failures in 7fd14eb08b
Máté Kocsis
- Fix inexistent
skipif
.inc in 59180b50b3
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
Niklas Keller
- Fix pcre.jit on Apple Silicon in f8b217a345
Patrick Allaert
- Update versions and NEWS for PHP 8.1.11 in b357a4fe71
Sara Golemon
- Catch up dev version numbers in 3d6ed8c852
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