PHP 8.1.0alpha3: Downloads, Changelog, News

Release Information

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

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


Source Code

Git Clone
Use Git to clone the 8.1.0alpha3 tag from the PHP Git repository.
git clone --depth 1 --branch php-8.1.0alpha3
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.0alpha3-cli-alpine

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

Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.1.0alpha3-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.0alpha3-fpm

Commit List

Aaron Piotrowski

  • Allow creating Graceful/UnwindExit and use when destroying a fiber in GH-7174

Alex Dowad

  • Fix conversion of HZ text (and add test suite) in 1e5c3c13fd
  • Fix conversion of CP936 text (and add test suite) in ebae1a4524
  • Remove table generation scripts which have not been used for years in ddea06699b
  • Fix conversion of EUC-KR text (and add test suite) in 69c979aaea
  • Fix conversion of EUC-CN text (and add test suite) in 8b25e38b21
  • Fix conversion of EUC-TW text (and add test suite) in ff85ed8adc
  • Fix conversion of EUC-JP-2004 text (and add test suite) in 0a8c00755d
  • Code cleanup in mbfilter_uhc.c in 658db1f6ea
  • Fix conversion of ISO-2022-KR text (and add test suite) in b626e893ff

Anatol Belski

  • phar: crc32: Extend and cleanup API for the new bulk crc32 functions in e7123ef569

Ben Morss

Ben Ramsey

  • The master branch is now for 8.1.0alpha3 in ac82c00640
  • Update versions for PHP 8.1.0alpha2 in f581b46996

Brent Roose

Calvin Buckley

Cameron Porter

Christoph M. Becker

Dmitry Stogov

  • Move the whole "cold" path into the "cold" function in 973ae8d3e2
  • JIT/x86: Fixed possible incorrect exception catching in function JIT in 99c0efc77a
  • JIT/ARM64: Fixed possible incorrect exception catching in function JIT in ff983131e7
  • JIT/ARM64: Fixed incorrect trace linking in 4743c7a16f

Ganesh Kandu

George Peter Banyard

  • Pure Intersection types in GH-6799

Hao Sun

  • JIT/AArch64: Support shifted immediate in GH-7165


  • Windows: allow GD ext without avif.dll in 0c89edac3a

Joe Watkins

Kamil Tekiela

  • Fix libmysql test cases in GH-7097
  • Fix broken test due to missing in f699c96ec3
  • optimize skip condition for the test in db64aa3cfd

Martin Schröder

Máté Kocsis

  • Mention ReturnTypeWillChange attribute in the error message in GH-7183
  • Declare tentative return types for ext/intl in GH-6986

Nikita Popov

  • Don't directly include zend_jit_gdb.c in 0e932f7cea
  • Run phpunit job even if previous failed in 64525b6c1a
  • Disable lsan on new PDO firebird tests in fa71a11fe2
  • Move INHERITANCE_WARNING handling one layer up in f256c3f617
  • Simplify registration of unresolved classes in ac99d5b502
  • Initialize retval on bitwise_not exception in 65bbd92dca
  • 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
  • Init STRLEN result when deprecation promoted to exception in 353f963bba
  • Fixed bug #80173 in bdc60fa7da
  • Fix return value of wrong fucntion by-ref assign in 96bf925cde
  • Reduce stack usage in php_resolve_path() in 083d7f5886
  • Fix bug #80072: Root live tmpvars after GC in 52cf7ab8a2
  • Avoid null pointer arithmetic in SplFixedArray in b65380286a
  • Fix typo in RecursiveIteratorIterator get_gc handler in c2a8934b86
  • Fix leak of callable error if exception also thrown in 29b82695b5
  • Handle out of order destruction of RecursiveIteratorIterator in f7b1238f13
  • Add missing error condition to stream_context_set_option() in 1b01bf3a95
  • Add ext/reflection to execute parser corpus in 600dc57f24
  • Handle promoted exception in int|string type in 629965c80f
  • Fix ArrayObject::exchangeArray() return type in bcefc31e4e
  • Slightly clarify current_zval handling in spl_directory in bb97c947e3
  • Use some early returns in spl_directory in 1a81251dbb
  • Minor fgetcsv cleanup in 076fbd360a
  • Add test for weird fgetcsv behavior in e258f13fab
  • Add initialization checks to DirectoryIterator methods in ac7a28189a
  • SplFileObject::fgetcsv(): Consistently return false on failure in 188b1d4c7c
  • Ensure correct return type from SplFileObject::getCurrentLine() in 8a67dfd16b
  • Fix phar test in 5502910ed8
  • Slightly clean up reflection constant printing in f43a19ee94

Patrick Allaert

  • Remove " " being considered as an invalid filename for is_file() in 3221a4cb4c
  • Removing obsolete tests in 182e3ac0c3
  • Fixed some spaces used instead of tabs in aff365871a
  • Prefer EXPECT over EXPECTF in ac18dd0dc7

Remi Collet

Stanislav Malyshev

Tyson Andre

  • Fix false positive recursion warning for var_export of enums in GH-7201
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.