PHP 8.1.14: Downloads, Changelog, News

Release Information

Release
8.1.14
PHP Version
PHP 8.1
Release Date
Release Type
Security Update
Release Status
Use PHP 8.1.30 instead
Branch Status
Security-Fixes Only

PHP 8.1 is currently only receiving security fixes. PHP 8.1.14 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
Use Git to clone the 8.1.14 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.1.14
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
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.14-cli-alpine

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

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

ChangeLog

Core

  • Fixed bug GH-9905 (constant() behaves inconsistent when class is undefined).
  • Fixed bug GH-9918 (License information for xxHash is not included in README.REDIST.BINS file).
  • Fixed bug GH-9650 (Can't initialize heap: [0x000001e7]).
  • Fixed potentially undefined behavior in Windows ftok(3) emulation.

Date

  • Fixed bug GH-9699 (DateTimeImmutable::diff differences in 8.1.10 onwards - timezone related).
  • Fixed bug GH-9700 (DateTime::createFromFormat: Parsing TZID string is too greedy).
  • Fixed bug GH-9866 (Time zone bug with `DateTimeInterface::diff()`).
  • Fixed bug GH-9880 (DateTime diff returns wrong sign on day count when using a timezone).

FPM

  • Fixed bug GH-9959 (Solaris port event mechanism is still broken after bug #66694).
  • Fixed bug #68207 (Setting fastcgi.error_header can result in a WARNING).
  • Fixed bug GH-8517 (Random crash of FPM master process in fpm_stdio_child_said).

MBString

  • Fixed bug GH-9535 (The behavior of mb_strcut in mbstring has been changed in PHP8.1).

Opcache

  • Fixed bug GH-9968 (Segmentation Fault during OPCache Preload).

OpenSSL

  • Fixed bug GH-9064 (PHP fails to build if openssl was built with --no-ec).
  • Fixed bug GH-10000 (OpenSSL test failures when OpenSSL compiled with no-dsa).

Pcntl

  • Fixed bug GH-9298 (Signal handler called after rshutdown leads to crash).

PDO_Firebird

  • Fixed bug GH-9971 (Incorrect NUMERIC value returned from PDO_Firebird).

PDO/SQLite

Session

  • Fixed GH-9932 (session name silently fails with . and [).

SPL

  • Fixed GH-9883 (SplFileObject::__toString() reads next line).
  • Fixed GH-10011 (Trampoline autoloader will get reregistered and cannot be unregistered).

SQLite3

  • Fixed bug #81742 (open_basedir bypass in SQLite3 by using file URI).

Commit List

Arnaud Le Blanc

  • Do not resolve constants on non-linked class during preloading in GH-9975
  • Fallback to first line of function when ex->opline is NULL in GH-10003

Ben Ramsey

Christoph M. Becker

Daniel Black

  • ext/mysqli tests "using password" optional in error messages in b6b4a628a5

David Carlier

Derick Rethans

Dmitry Stogov

Erki Aring

  • Fix GH-9298: remove all registered signal handlers in pcntl RSHUTDOWN in 5ecbb1b39d

George Peter Banyard

George Wang

  • Use __atomic_xxxx() instead of __sync_xxxx() for lsapi in 4bdfce6c1a

Ilija Tovilo

Jakub Zelenka

  • Introduce TEST_FPM_EXTENSION_DIR for FPM tests with shared extensions in db2d32f476
  • Fix bug #68207: Setting fastcgi.error_header can result in a WARNING in 5a4520bc2b
  • Fix GH-8517: FPM child pointer can be potentially uninitialized in c9c1934ff0
  • Add a note to php.ini-* regarding the required order for GH-8620 in 9416186ff1
  • Fix GH-9064: PHP fails to build if openssl was built with no-ec in ce57221376
  • Fix GH-10000: Test failures when OpenSSL compiled with no-dsa in 500b28ad04

Michael Voříšek

NathanFreeman

Petr Sumbera

  • php-fpm: fix Solaris port events.mechanism in 72da2b02e2

Sara Golemon

Stanislav Malyshev

蝦米

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.

Support PHP.Watch — If you find the articles, version information, Codex, and other PHP.Watch contributions useful, consider supporting through GitHub Sponsors. Your sponsorship helps dedicate more time to creating valuable content and improving the PHP community. Together, we can keep the momentum going — thank you for your support!

Thanks to the highest tier sponsor: @TomasVotruba for your generous support to keep PHP.Watch moving 💜