PHP 8.1.1: Downloads, Changelog, News

Release Information

PHP Version
PHP 8.1
Release Date
Release Type
Bug Fix Release
Release Status
Use PHP 8.1.29 instead
Branch Status
Security-Fixes Only

PHP 8.1 is currently only receiving security fixes. PHP 8.1.1 is not the latest version in the series, and using this release is not recommended. PHP 8.1.29 is the latest in the series.


Source Code

Git Clone
Use Git to clone the 8.1.1 tag from the PHP Git repository.
git clone --depth 1 --branch php-8.1.1
How to compile PHP
PHP can be compiled by setting up the dependencies, building the configure script (./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.
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.

Docker/Podman Containers

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.1.1-cli-alpine

Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.1.1-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.1.1-fpm-alpine

Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.1.1-apache

Debian-based NTS FPM: PHP-FPM, can be integrated with Nginx, Caddy, and other web servers over Fast CGI.
docker pull php:8.1.1-fpm



  • Fixed bug #81649 (imap_(un)delete accept sequences, not single numbers).


  • Update bundled PCRE2 to 10.39.
  • Fixed bug #74604 (Out of bounds in php_pcre_replace_impl).


  • Fixed bug #81659 (stream_get_contents() may unnecessarily overallocate).

Commit List

Alex Dowad

  • Enable encoding detection for Polish text in d573054ebe
  • Add unit tests for mb_detect_encoding on Polish text in 1a2c608053

Christoph M. Becker

Derick Rethans

Dmitry Stogov

  • Fixed bug #81634 (ZEND_ENABLE_STATIC_TSRMLS_CACHE produces extensionswith the STATIC_TLS flag) in 72f8dbb312
  • Fixed incorrect DCE for ADD_ARRAY_ELEMENT instruction in f302430c72
  • Fixed incorrect refcountion inference for BW_NOT in 3c53a9fd73
  • Fixed incorrect narrowing to double in f9518c3850
  • JIT: Fixed use-after-free caused by shift by negative number in 49f44e7ffc
  • Fixed test (added 8.1 deprecation) in 442304485e
  • Disable type narrowing optimization when we contruct SSA for JIT in 297117bbc5
  • JIT: Fix named arguments handling in 8f4cfe04eb
  • JIT: Fix named arguments handling in d955415114
  • JIT: Fix exception handling when next array element is already occupied in aff115547f
  • Fixed type inference (it's safe to ignore reference counting narrowing) in 86430e8e01
  • Restore line, removed by mistake in b9141223 in 3c3626a903
  • JIT: Fix uninitialized result of ASSIGN_DIM[_OP] after clobbering array by user error handler in 6e1fe96962
  • JIT: Fix incorrect reference counting inference in c1036194d6
  • Fix crash after indirect modification of string by user error handler in df434f056f
  • JIT: Fix incorrect code produced for BOOL_NOT and [double, undef] operand in e7b31f57ec
  • Fixed crash in ZEND_ASSIGN_DIM_OP because of array cloberring by user error handler in b594a95a2f
  • Fix SCDF cleanup of unused basic block, kept only because of FREE of a loop var in c3766c08f4
  • Use proper functions in 9f6ab78610
  • Fix clobering of operand by error handler in assignment to string offset in 09547c64c2
  • Fix clobering of operand by error handler in assignment to string offset (optimization and JIT support) in 4595a57e99
  • Fixed ext/bz2/tests/005.phpt test failure introduesed by 09547c64 in df16da3697
  • Add missing zend_string_release_ex(tmp, 0) and cleanup in 37ac707cac

Jakub Zelenka

  • Add skip for FPM process idle flaky test in 81513e6285

Nikita Popov

Patrick Allaert

Remi Collet

Sara Golemon

Subscribe to PHP.Watch newsletter for monthly updates

You will receive an email on last Wednesday of every month and on major PHP releases with new articles related to PHP, upcoming changes, new features and what's changing in the language. No marketing emails, no selling of your contacts, no click-tracking, and one-click instant unsubscribe from any email you receive.