PHP 8.1 is currently only receiving security fixes. PHP 8.1.19 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.
Downloads
Source Code
Git Clone
Use Git to clone the 8.1.19 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.1.19
How to compile PHP
PHP can be compiled by setting up the dependencies, building the configure script (
Detailed articles on how to compile PHP are available for Ubuntu/Debian based systems and Fedora/RHEL based systems.
./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.
php-8.1.19-x64NTS.zip (29.27 MiB)
php-8.1.19-x86NTS.zip (26.33 MiB)
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.
php-8.1.19-x64TS.zip (29.37 MiB)
php-8.1.19-x86TS.zip (26.30 MiB)
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.19-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.1.19-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.19-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.1.19-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.19-fpm
ChangeLog
Core
- Fix inconsistent float negation in constant expressions.
- Fixed bug GH-8841 (php-cli core dump calling a badly formed function).
- Fixed bug GH-10737 (PHP 8.1.16 segfaults on line 597 of sapi/apache2handler/sapi_apache2.c).
- Fixed bug GH-11028 (Heap Buffer Overflow in zval_undefined_cv.).
- Fixed bug GH-11108 (Incorrect CG(memoize_mode) state after bailout in ??=).
DOM
- Fixed bug #80602 (Segfault when using
DOMChildNode::before()
). - Fixed incorrect error handling in
dom_zvals_to_fragment()
.
Exif
- Fixed bug GH-9397 (exif read : warnings and errors : Potentially invalid endianess, Illegal IFD size and Undefined index).
Intl
- Fixed bug GH-11071 (TZData version not displayed anymore).
PCRE
- Fixed bug GH-10968 (Segfault in
preg_replace_callback_array()
).
Standard
Commit List
Derick Rethans
- Fixed tests and remove the
XFAIL
'Various bugs exist'. They did, but they were in the tests in e67bb14ab4
Dmitry Stogov
- Tracing JIT: Fixed incorrect code generation fofr SEND-ing of result of ASSIGN to typed reference in 8a749c79d0
- Allow FETCH_OBJ_W and FETCH_STATIC_PROP_W to return INDIRECT/UNDEF zval for uninitialized typed properties in GH-11048
Ilija Tovilo
- Unary minus const expression consistency in 41bbb116dd
- Fix incorrect zval type_flags in
preg_replace_callback_array()
for immutable arrays in 66ce205718 - Fix
add_function_array()
assertion when op2 contains op1 in 84b4020eb4 - Fix test
bug60120.phpt
in dd44a9330e - Support enums in
array_unique
in e8b8341d3d - Fix reference returned from
CallbackFilterIterator::accept()
in 5855bdcd6c - Fix incorrect CG(memoize_mode) state after bailout in ??= in 4c38a79f09
- Endless recursion when using + on array in foreach in 520fc2d2f3
Jakub Zelenka
- Add FPM FastCGI env var test for Apache without path info fix in 15802dfc62
- Add FPM FCGI env Apache handler UDS test in ebb3213f79
- Use curl from brew on MacOS CI in 4be6435c9f
- Add
zend_test_crash
funtion to segfault PHP process in 0ac55e9bfb - Add missing
zend_test_crash
message initialization in 84be9042f9
Michael Voříšek
- Fix mysql tests with non-standard server port in 0ab51a9561
NathanFreeman
- Fix bug #80602: Segfault when using
DOMChildNode::before()
in 2d6decc14c
Niels Dossche
- Fix GH-8841: php-cli core dump calling a badly formed function in cf9b030a57
- Fix GH-10990:
mail()
throws TypeError after iterating over $additional_headers array by reference in 79c5b32d15 - Fix incorrect error handling in
dom_zvals_to_fragment()
in 0579beb842 - Fix GH-9397: exif read : warnings and errors : Potentially invalid endianess, Illegal IFD size and Undefined index in b81ce297a1
- Fix GH-10737: PHP 8.1.16 segfaults on line 597 of sapi/apache2handler/sapi_apache2.c in 51faf04dbd
- Fix GH-11028: Heap Buffer Overflow in zval_undefined_cv in fc32d39b7f
- Set error_log to an empty value if the test relies on that feature in 691ff9f845
Patrick Allaert
- Update versions for PHP 8.1.19 in b0c0fa7d12
Remi Collet
- Fix GH-11071: Revert "Fix [-Wundef] warning in INTL extension" in 31e21f7dbc