PHP 8.1 is currently only receiving security fixes. PHP 8.1.0beta2 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.0beta2
./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.0beta2-cli-alpine
docker pull php:8.1.0beta2-cli
docker pull php:8.1.0beta2-fpm-alpine
docker pull php:8.1.0beta2-apache
docker pull php:8.1.0beta2-fpm
Commit List
Andrii Dembitskyi
- Fix
SplFileObject::fseek()
method description in GH-7321
Andy Postnikov
- Backport libgd commit in bb9ef2bedb
Ben Ramsey
- The master branch is now for 8.1.0beta2 in 718b675fb6
- Change release process to create branch at RC1 in fda0ed58d3
- Update versions for PHP 8.1.0beta2 in e46253f769
Christopher Jones
- Update OCI8 tests for oci8.old_oci_close_semantics deprecation in 328a07daf5
Christoph M. Becker
- Fix #74960: Heap buffer overflow via str_repeat in 760ff841a1
- Fix #81283: shmop can't read beyond 2147483647 bytes in 387c0de983
- Fix #81294: Segfault when removing a filter in 1fa26eccba
- Fix #81252: PDO_ODBC doesn't account for SQL_NO_TOTAL in 98049e8b9a
- Fix #81305: Built-in Webserver Drops Requests With "Upgrade" Header in d1ccb5bd0c
Dmitry Stogov
- Fixed Bug #81255 (Memory leak in PHPUnit with functional JIT) in 02acc5ad3b
- Fixed test in c22a4d76d5
- Fixed Bug #80959 (infinite loop in building cfg during JIT compilation) in a9991fbf28
- Fixed test in 9108ac678e
- Fixed bug #81226 (Integer overflow behavior is different with JIT enabled) in 053c56f52e
- Added test in 17b5fe13e2
- JIT: avoid $this check in closures called from methods in 9c2b87c3cf
- Fixed typo in 8fbeebec34
Frago9876543210
- Fixed failed test in extension skeleton in 9fb93e8ed1
George Peter Banyard
- [skip-ci] Fix comments and UPGRADING.INTERNALS for
zend_type
changes in fb52b3c915
Hao Sun
- Fix a typo in function execute_ex in GH-7315
Jakub Zelenka
- Sync the FPM openmetrics status with php-fpm_exporter in 590af4678b
Javier Eguiluz
- Fix some typos in GH-7320
- Fix some mismatches in preprocessor directive comments in 7c9ac479eb
- Remove a redundant expression in 70872dde94
Joe Watkins
- drop unused header in fibers in 576655e23f
- more fiber notifications in GH-7293
- retry ldap setup a few times in CI in 0ba6ddefd5
- Extend resource reservation to Fibers in GH-7292
- Fix bug #81303 improve match errors in 05ef6334cd
Kamil Tekiela
- Prevent mysqli::next_result from reporting errors from previous calls in GH-7304
- Remove wrappers for *printf functions in GH-7313
- Remove mysqlnd_field_type_name in 254d1641bb
- Remove get_parameter_metadata in fb85731c67
- Drop mysqlnd statistics triggers in 132d499424
- Fix typo [no-ci] in 6b1337b736
- Fix typos in GH-7327
Levi Morrison
- Remove leading underscore for _zend_hash_find_known_hash in GH-7260
Mike Pall
- DynASM/x86: Add missing escape in pattern in 58040f257c
Máté Kocsis
- Migrate to PHP-Parser 4.12.0 and regenerate some arginfos in 23b1c4a982
- Add support for generating readonly properties via stubs in GH-7297
- Fix oci8.old_oci_close_semantics deprecation is always displayed in 87c181a0b0
- Display the readonly property modifier when printing reflection info in 8d25b62414
- Validate that promoted readonly properties have a type in 3babe9576e
- Improve class inheritance error messages in GH-7307
- Add support for generating classynopses from stubs in ac17b3646d
Nikita Popov
- Don't enable rc_debug mode if module startup fails in 1da5df8029
- Fix user ini parsing under RC_DEBUG in 21d9931007
- Fix return type of
DOMNodeList::item()
in 1602db2d3f - Add variation job with RC_DEBUG=1 in 0fb1ccca7c
- Sync JIT
zend_check_string_offset()
in a190c7fdb7 - Sync JIT overloaded assign/inc/dec overloaded property in a3f5b11994
dom_import_simplexml()
cannot return null in a0893865b3- Set PROFITABILITY_CHECKS=0 on variation job in 4a8efc39c1
- Forbid multiple readonly modifiers in 11b990f848
- Add support for verifying optimizer func info in 7b85d3bbdd
- Transfer MAY_BE_INDIRECT for VERIFY_RETURN in e3d90fa7de
- Print MAY_BE_INDIRECT in dump in d1456d1e3c
- FETCH_STATIC_PROP_IS may return undef in e2194c18df
- Add RETURN/RETVAL_COPY_DEREF() macros in 6d505d4445
- Don't return reference from
Fiber::getReturn()
in 578b785ecf - Fix typo in 9e787d51b5
- Add explicit
IntlPartsIterator::getRuleStatus()
method in a5ad9eeefa - Remove unnecessary PDORow get_method / get_class_name handlers in 8a26cbe0dd
- Always use separate static_members_table in 3eb97a4566
- Add test for bug #80564 in 5ac55af5e5
- Fix bug #63327 in 338a47bb85
- Set called_scope in __callStatic closure trampoline in a8926474cb
- Fix bug #66719 in dfd05da97f
- Assert that call to method always has called scope or object in 8befb6d84f
- Remove
zend_cleanup_internal_classes()
in 89d0115409 - Remove redundant static_members/mutable_data cleanup in 36d2dd087a
- Share
zval_make_interned_string()
helper in c4f4f1ece7 - Add support for internal enums in a374230c15
- Remove special ctor handling in abstract class verification in 56ef117419
- Don't force property type resolution for include preloading in 70195c3561
- Fix enum cast AST allocation in 645ef62693
- Don't force constant resolution for include preloading in 703e92c121
- Fix preloading of enums in c1959e63e5
- Fix enum cast AST allocation, again in aef3bb70f4
- Allocate map_ptr for mutable_data during preloading in b35418402f
- Don't use IMMUTABLE flag to decide whether mutable_data is used in 5a7e1a7aa8
- Fix preloading of trait property attributes in 1bd6fafa2f
- Increment refcounts in mutable data copies in 8675380b67
- Don't unlink preload file if test failed in 6aa08736bb
- Handle missing class when evaluating CONST_ENUM_INIT in 8834cf013b
- Reuse part of the class binding logic in dcf5e5bbf0
- Fixed bug #81298 in 9d0db2e98a
- Don't use opaque for encoding detection score in a1c1ee6a48
- Extract early binding registration code in f78216f62e
- Use consistent line numbers for early binding errors in 380e705fc2
- Add missing EXTENSIONS section in 89aa42c74b
- Preload unlinked classes, remove preload autoload in GH-7311
- Clean up dependency resolution during preloading in 29aed2a6c8
- Fix parameter name in
call_user_func()
error message in 840e441d2d - Fix parameter name in
count()
error message in 6c7b322de2 - Drop HAS_UNLINKED_USES flag in b5746a4c7f
- Don't print preload warning for non-top-level classes in b1b0c81e39
- Perform preloading attempt on copied class in d836046ab8
- Don't reverse class order during preloading in 67b5d8fcdc
- Skip shebang on preload script in 9ee9393784
- Fix session + Serializable tests in 185212109c
- Tweak some tests to be
--preload
compatible in 06cf4ff03e - Skip some tests under
--preload
in 1a370d3321 - Automatically skip
ext/opcache
tests under--preload
in 1015eefffe - Test
--preload
in CI in d6368f7232 - Remove dynamic defs from methods as well in 8356da600b
- Remove declares inside functions as well in 9fe3aab7c5
- Fix mutable data initialization during lazy class loading in 6e91a820d8
- Move
php_gcvt
tozend_gcvt
in d28f6e694d - Remove FORMAT_CONV_MAX_PRECISION in e14fbc84ac
- Add additional double to string APIs in 604848188b
- Fix ASSIGN_DIM to NEXT with rc=1 reference value in 6d5ae6496c
- Update libmysqlclient job to MySQL 5.7.35 in 467504c952
Remi Collet
- Fix bug #81325 Segfault in zif_simplexml_import_dom in 112527d677
- NEWS in 35c3e0b1a4
- NEWS in 98b9d6d9c6
- typo in 940c35366d
SKIPIF
to EXTENSIONS in 1aaec4df67