PHP 8.1 is currently only receiving security fixes. PHP 8.1.0beta3 is not the latest version in the series, and using this release is not recommended. PHP 8.1.31 is the latest in the series.
Downloads
Source Code
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.1.0beta3
./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.0beta3-cli-alpine
docker pull php:8.1.0beta3-cli
docker pull php:8.1.0beta3-fpm-alpine
docker pull php:8.1.0beta3-apache
docker pull php:8.1.0beta3-fpm
Commit List
Ben Morss
- Disable strict pixi requirement for libavif >= 0.9.1 in e0e2e9a547
- Lossless conversion for webp in eb6c9eb936
Ben Ramsey
- The master branch is now for 8.1.0beta3 in d23e601286
- Update versions for PHP 8.1.0beta3 in 3edd1087c7
Calvin Buckley
- AIX/XCOFF support for fibers in GH-7338
Christoph M. Becker
- Fix #51498: imagefilledellipse does not work for large circles in c565555f03
- Fix #81327: Error build openssl extension on php 7.4.22 in 6724d5d4c2
- Fix #74544: Integer overflow in
mysqli_real_escape_string()
in 5977610de1 - Fix #81302: Stream position after stream filter removed in 40b31fcc80
- Use
--EXTENSIONS--
instead of --SKIPIF
-- in new test case in 961ac1f0fb - Fix #81346: Non-seekable streams don't update position after write in 4a1af1f871
- Fix
SKIPIF
clause in 47aaffcdee - Fix #81351:
xml_parse
may fail, but has no error code in 80a377e69b - Fix return value of
xml_parse
(_into_struct) for recursive parsing in 15e5cf856a - Remove full stop from error message in 6b1c47a50e
- Fix #71542: disk_total_space does not work with relative paths in f924e97269
- Fix #78919: CLI server: insufficient cleanup if request startup fails in be2df43b08
David CARLIER
- Fix dns resolv linkage issue on haiku in GH-7350
Derick Rethans
- Upgrade timelib to version 2020.03 in 4aeff60f34
- Fake merge timelib upgrade to 2020.03 into master, which will get a 2021.x upgrade very soon in f094ee245a
- Upgrade timelib to 2021.06 in 8426623521
- Import timelib 2021.07 in 66ea59e38e
- Fixed bug #80963:
DateTimeZone::getTransitions()
truncated in d9c8e5a42e - Fixed test by adding echo and expected string in 69fb3efe80
- Prepare for 7.4.24 in 79d564a8cc
Dmitry Stogov
- Improve Range Inference in df6ffa806c
- Optimize "$x * 2" into "$x + $x" in 14c103d7c5
- Make private functions "static" and remove unused
zend_inference_check_recursive_dependencies()
in aaa14501f8 - Implement range inference for traces in 865b096890
- Use
ZEND_HASH_FILL_*
API in 2e8904fee0 - Eliminate "h < ht->nNumUsed" check in
zend_hash_next_index_insert_new()
in 6729276684 - JIT: Use
zend_hash_index_lookup()
instead of zend_hash_index_add_new(EG(uninitialized_zval)) in 57e2241cbc - Fixed incorrect condition in c39332d740
- Fixed conditional jump on uninitialised value (Zend/tests/match/028.phpt failure with function JIT) in 94b800182d
- Better specialization for packed/hash arrays in 1ffbb7372a
Gabriel Caruso
- Prepare for PHP 8.0.11 in 00bb7c97f8
George Peter Banyard
- Refactor
proc_open()
implementation in GH-7255
Jakub Zelenka
- Make CertificateGenerator not dependent on external config in OpenSSL 3.0 in c90c9c7545
Jeremy Mikola
- Include class name in Serializable deprecation message in 858d0c0916
Joe Watkins
- Drop TsHashTable in GH-7351
- Fix bug #81280 refuse to allow unicode chars in prompts in a2e051921a
Kamil Tekiela
- Replace macro with inline function in GH-7365
Michael Voříšek
- Fix typo in enum test in GH-7368
Máté Kocsis
- Fix DOMNameSpaceNode casing in ee11a6065c
- Fix another DOMNameSpaceNode casing issue in da2cd931e5
- Add support for replacing class synopses based on stubs in GH-7340
Nikita Popov
- Optimize openssl memory leak test in 6249172ae3
- Reduce security level in some OpenSSL tests in 3ea57cf838
- Adjust some tests for whitespace differences in OpenSSL 3 in 0a530d7650
- Use different cipher in
openssl_seal()
test in 046b36bcf8 - Don't test legacy algorithms in SPKI tests in 9695936341
- Only report provided ciphers in
openssl_get_cipher_methods()
in a80ae97d31 - Avoid RC4 use in another test in 503146aa87
- Use EVP_PKEY API for openssl_public_encrypt/private_decrypt in 0233afae27
- Use EVP_PKEY APIs for openssl_private_encrypt/public_decrypt in 384ad6e224
- Use EVP_PKEY APIs for key generation in 13313d9b1b
- Relax error check in cd8bf0b6bd
- Store whether pkey object contains private key in f878bbd96b
- Add test for
openssl_dh_compute_key()
in 7168f71e00 - Extract
php_openssl_pkey_derive()
function in c6542b2a1e - Avoid DH_compute_key() with OpenSSL 3 in cb48260fdd
- Use different algorithm in pkcs7 tests in 563b3e3472
- Use different algorithm in cms tests in ec4d926a80
- Use larger key size for DSA/DH tests in 1cf4fb739f
- Skip some tests if cipher not available in d23a8b33ab
- Use different cipher in one more CMS test in a2c201351b
- Generate pkcs12_read test inputs on the fly in 5843ba518c
- Do not special case export of EC keys in f2d3e75933
- Switch manual DH key generation to param API in a7740a0bf0
- Switch manual DSA key generation to param API in 2bf316fdfc
- Use OpenSSL NCONF APIs in GH-7337
- Extract EC key initialization in 14d7c7e9ae
- Test calculation of EC public key from private key in 246698671f
- Use param API for creating EC keys in f9e701cde8
- Extract public key portion via PEM roundtrip in 26a51e8d7a
- Use param API for
openssl_pkey_get_details()
in 6db2c2dbe7 - Add missing unsigned qualifier in ff2a39e6fc
- Use param API to create RSA key in 3724b49aa9
- Remove special self/parent handling in
get_class_name_map_ptr()
in GH-7330 - Fix ristretto255 tests in 9168aab381
- Add missing parts of previous commit in f31db20956
- Improve ristretto255 scalarmult exception messages in 98184afd92
- Fork
openssl_error_string()
test for OpenSSL in e5f53e1ca1 - Comment out ristretto255 scalar invert test in 2addab1561
- Switch dh_param handling to EVP_PKEY API in ef787bae24
- Switch mysqlnd auth to EVP_PKEY API in 1c675b9d0d
- Mark DOM classes as not serializable in ca94d55a19
- Use
zend_string_equals_literal_ci()
in a4e206808c - Fixed bug #81342 in 607be654fd
- Fix openssl memory leaks in 7d2a2c7dc0
- Always use CE_CACHE, remove TYPE_HAS_CE in GH-7336
- Fixed bug #81349 in 28500fe4ef
- Add EXTENSIONS section in 14173186db
- Clear ce cache when persisting for file cache only in 02b5660c0f
- Fix bug #81142 by adding
zend_string_init_existing_interned()
in 4a4ae45a0b - Fix port clash in socket tests in 78cbe56e68
- Fixed bug #81192 in 1c6df2dffd
- Remove mysqlnd local_tx functionality in 277e169ef3
- Remove unused mysqlnd portability macros in 8f5555605a
- Remove MYSQLND_SZ_T_SPEC in b80767e219
- Fix directory clash in zip test in 96f9501b3a
- Don't use custom object handlers for enum properties in caefc6a507
- Fix message in test in a027247289
- Fix func info for constant()/
get_defined_constants()
in a4c2fb1462 - Returned interned string from
fgetc()
in 6e20f0f3a2 - Fix arginfo/zpp consistency check for call_user_func from strict_types scope in 8755976315
- Switch default PKCS7/CMS cipher to AES-128-CBC in 7b34db0659
- Fixed bug #81353 in d1e956ff31
- Discard constants before
preload_load()
in 99ddc806dc - Set EG(active)=0 during preloading shutdown in 4bb66ddc76
- Reuse parts of normal executor shutdown for preloading in cecea72a10
- Add test for getClass() error conditions in fc6f3d155b
- Fix COMPILER_HALT_OFFSET preservation during preloading in 97b6a364b3
- Prevent bailout during imap shutdown error reporting in bcc2f0705d
- Run other RSHUTDOWN handlers if one fails in cf6c354e1f
- Use system allocator for putenv value in b56699b8f0
- Reduce nesting in mkdir implementation in 3c7ff25fbe
- Fix maybe-uninitialized warning in b66168e86b
- Use
zend_string
for putenv key in GH-7379 - Clean up recursive mkdir logic in 9574627552
- Fix phar test in ddc21b0902
Philip Hofstetter
- Fix bug #81343: inconsistent type conversion after closeCursor in ace8fba759
Radosław Kowalewski
- Require sqlite >= 3.7.7 for URI in DSN in GH-7347
Remi Collet
- minimal fix for openssl 3.0 in GH-7002
- add SHA256 and SHA512 for security protocol in 718e91343f
- NEWS in 5d57d9073c
- switch phar to use sha256 signature by default in 8bb0c74e24
- implement openssl_256 and openssl_512 for phar singatures in c51af22fef
- NEWS in 1100a079ed