PHP 8.4.0beta5 is an old release of PHP 8.4 series. Using the latest version PHP 8.4.3 is highly recommended.
PHP 8.4 continues to receive bug fixes and security fixes until 2026-12-31.
Downloads
Source Code
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.4.0beta5
./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.4.0beta5-cli-alpine
docker pull php:8.4.0beta5-cli
docker pull php:8.4.0beta5-fpm-alpine
docker pull php:8.4.0beta5-apache
docker pull php:8.4.0beta5-fpm
Commit List
Arnaud Le Blanc
- Alpine/Musl nightly job in GH-13925
- Do not scan generator frames more than once in GH-15330
- Lazy objects in 58aa6fc830
Ayesh Karunaratne
ext/curl
: libcurlCURLOPT_{FTP_RESPONSE_TIMEOUT,ENCODING}
replacements in GH-15126ext/curl
: UpdateUPGRADING
andNEWS
for GH-13255 in GH-15668ext/curl
: No-opCURLOPT_DNS_USE_GLOBAL_CACHE
constant (GH-15127) in 24d4ae9d2f
Bob Weinand
- Make internal run_time_cache a persistent allocation in GH-15040
Calvin Buckley
- Update versions for PHP 8.4.0beta5 in 7fcb0a3d3d
Christoph M. Becker
- Drop support for building with MSC_VER < 1920 in b3d6414b87
- ICU 75.1 requires C++17 (GH-15678) in 0f8259e896
- Don't export
php_pdo_int.h
in a57ce052cd - Fix GH-15628:
php_stream_memory_get_buffer()
not zero-terminated in 93021c635d - Mark
gd14930.phpt
as dynamicxfail
in ac4039df20 - Skip tests calling wmic if it is not available in 0b1e401f2c
- Fix GH-15552: Signed integer overflow in ext/standard/scanf.c in 08841bf79c
- Fix
run-tests.php
to propagate status code on Windows in 71b908748a - Dynamically
xfail
test cases which fail on CI (GH-15710) in 6d5962074f - Close-GH 15685: improve
proc_open
error reporting on Windows in 3892529fed - Fix dba tests wrt resource to object conversion (GH-15716) in 8a2015451a
- Use
php_error_docref()
instead ofzend_error()
insession.c
(GH-15505) in 217ea732fc - Fix GH-15742:
php_hash_sha.h
incompatible with C++ in 5d1181fb3f - Support SHA256_Transform_shani() with MSVC, too in 1d36927127
- Support
--openssl-legacy-providers
on Windows, too (GH-15747) in 6732b8892d - Add comments about internal headers (GH-15689) in 50b3a0d011
gai_strerror()
is not thread-safe on Windows (GH-15568) in edcd6cc564
DanielEScherzer
- Generated arginfo header files: remove empty
zend_function_entry
arrays in GH-15705 - Generated arginfo header files: combine preprocessor conditional blocks in GH-15736
zend_get_constant_ex()
- remove commented out handling of class constants in GH-15728#[AllowDynamicProperties]
validation: improve error messages in GH-15734- Fix GH-15731: Prevent
#[AllowDynamicProperties]
on enums in GH-15733 userland_declaration_error_class_const.phpt
: fix test name in GH-15784
Daniel Ruf
- Fix typo in GH-15780
Daniel Scherzer
ReflectionProperty::get
{Hook,Hooks}(): handle dynamic properties in 18df69ee34- Fix GH-15752:
finfo_file()
- parameter validation error messages in c5e0a6aaab - backporting GH-15755 fix in 29f9f903b1
David Carlier
- Follow-up on GH-15548: curl_multi_select in c4ae645849
ext/gd
: porting gdImageClone to the bundled libgd version in 307565d577- Fix GH-15653: fgetcsv overflow on length parameter in 7db1a5843f
Derick Rethans
- Updated to version 2024.2 (2024b) in 5fc37b1ec6
- Empty merge in d31a9474b0
- Updated to version 2024.2 (2024b) in 7023fb9d93
- Empty merge in 8fcd0ccecf
- Updated to version 2024.2 (2024b) in 2f3224ea41
Dmitry Stogov
- Remove unintended
ZEND_EXT_API
usage in GH-15602 - Fix GH-15502: Crash with JIT and Excimer in GH-15601
- Fix GH-15497: Opcache with file_cache and JIT enabled crashes in GH-15635
- Fix GH-15497: Opcache with file_cache and JIT enabled crashes in GH-15635
- Prevent JIT of propery hooks in case of file caching (related to GH-15497) in 45dac39c71
- Restore error message incorrectly removed by commit 10d43c4 (related to GH-15497) in c15bb9afe2
- Prevent possible incorrect optimization caused by
ZEND_ASSUME()
in bf98023f1a - Don't set IS_STR_PERMANENT flag for strings stored in the file cache in GH-15643
- Fix GH-15652: Segmentation fault in the Zend engine when JIT enabled in GH-15717
- Update IR in a7f789ec56
- Fix GH-15656: php8.4beta4 JIT erronous results in GH-15732
- Fix GH-15820: Core dumped with jit.opcache=1245 in 5cf045d357
- Fix GH-15821: Core dumped in Zend/Optimizer/zend_inference.c:4062 in 7c8b3b2c96
Go Kudo
- standard: supress msan in GH-15665
- Fix OPcache tests under specific conditions in bca5f6e74f
- Fix OPcache tests under specific conditions in d966c296d0
Ilija Tovilo
- Improve readonly avis error (GH-15618) in daeb3295b2
- Fix asymmetric visibility with set hook in e12188fe89
- Forbid a-vis on unilateral virtual prop in 2b8a1b4258
- Simplify a-vis error message in 7f0d2574f0
- Fix uninitialized lineno in constant AST of internal enums in 08e0729c57
- Intercept strlcpy and strlcat for msan on Clang 17 in GH-12674
- Fix uouv in
array_column
in 24a294922b - Fix uninitialized EG(user_error_handler_error_reporting) in b9fdc0bdcd
- Fix uninitialized CG(
zend_lineno
) in 1f35e2a999 - Fix MSAN
getservbyport()
false positive in 0faa1d2017 - Fix
ReflectionProperty::isInitialized()
for hooked props in 025ed70ce3
Jorg Adam Sowa
- Add type indicator to array/arg unpack error messages (GH-15448) in 2a30f2ffc4
Levi Morrison
- Interrupt while internal frame is on the stack in GH-14627
Máté Kocsis
- Use
ZEND_UNCOMPARABLE
for consistency in 09c498233e - Add missing return for DatePeriod::__unserialize in 6cab76986d
Niels Dossche
- Fix GH-13988: Storing DOMElement consume 4 times more memory in PHP 8.1 than in PHP 8.0 in 88393cfaf7
- Avoid string duplication if possible in
SimpleXMLElement::addAttribute()
in GH-15606 - Cleanup
php_sxe_count_elements_helper()
in 7f37c22d22 - Remove unused parameter of
php_sxe_reset_iterator()
in 2fe8dd1054 - Remove unused parameter from
match_ns()
in 9979f4748c - Remove failure paths for infallible code in simplexml in 51d93c1947
- Optimize DOM property access in GH-15626
- Fix GH-15654: Signed integer overflow in ext/dom/nodelist.c in 9cb23a3dec
- Fix GH-15670: Polymorphic cache slot issue in DOM in GH-15676
- Remove redundant 'zobj->ce->__isset' check in GH-15699
- Fix GH-15690: ext-dba failures on 32-bit in GH-15691
- Fix GH-15693: Unnecessary include in
main.c
bloats binary in 0d616d1b82 - Simplify
bcmath_check_scale()
in f1b4e1276c - Move
bcmath_check_scale()
in 2e88916b58 - Reuse
bcmath_check_scale()
in ac0931d37a - Fix bug #61525: SOAP functions require at least one space after HTTP header colon in 7771ec07e5
- Deduplicate URI building code in soap schema code in GH-15799
- Fix SOAP test failure on libxml2 2.13 in 979e68a2ec
- Implement request #47317: SoapServer::__getLastResponse() in 8bcfc8cc13
- Fix GH-15661: Access null pointer in Zend/Optimizer/zend_inference.c in 86ef8d5466
- Fix GH-15658: Segmentation fault in Zend/zend_vm_execute.h in c1ffd4b484
- Fix merge into master in 23db89538b
- Fix buffer size configuration for AArch64 in bcd1f23b30
Peter Kokot
- Fix iconv_open basic test in GH-15611
- Autotools: Sync CS in
ext/dba
in GH-15608 - Autotools: Normalize
PHP_INSTALL_HEADERS
arguments in GH-15620 - Autotools: Normalize
PHP_ADD_BUILD_DIR
1st argument in GH-15612 - Autotools: Sync CS in
ext/odbc
in GH-15625 - Autotools: Normalize 2nd arg in
PHP_ADD_SOURCES_X
in GH-15088 - Remove redundant HAVE_LIBREADLINE check in GH-15623
- Autotools: Remove redundant double quotes in GH-15634
- Autotools: Use SED variable for sed command in GH-15641
- Autotools: Replace backticks command substitutions with $(...) in GH-15639
- Autotools: Sync CS in
ext/dba
(part 2) in GH-15621 - Trim trailing whitespace in GH-15649
- Fix -Wunused-function warning in
ext/pdo_firebird
in GH-15646 - Autotools: Replace backticks with $(...) in php.m4 in GH-15642
- Autotools: Refactor ODBC type checks in GH-15651
- Autotools: Add 3rd argument to dba
PHP_TEMP_LDFLAGS
in 558ccf7362 - Autotools: Fix pdo_mysql build with mysql client library in GH-15450
- Autotools: Normalize flags arguments in GH-15671
- Autotools: Fix iconv shared build with external library in GH-15686
- Autotools: Document PHP environment build configuration vars in GH-15684
- Autotools: Sync CS in
ext/openssl
in 45ebe47569 - Autotools: Sync CS in configure.ac in GH-15706
- Autotools: Enhance appending -lrt in GH-15719
- Remove Travis artefacts in GH-15714
- Autotools: Document the EXTENSION_DIR environment variable in GH-15743
- Autotools: Sync CS in
PHP_EVAL_LIBLINE
in GH-15737 - Autotools: Mark always-shared extensions with ext_shared variable in GH-15739
- Update skeleton extension .gitignore in GH-15738
- Autotools: Sync CS for
PHP_RUNPATH_SWITCH
in GH-15768 - Sync Zend/asm/make_ppc64_sysv_macho_gas.S with upstream in GH-15769
- Autotools: Replace uname with host_alias for finding Solaris in GH-15770
- Autotools: Sync CS in php.m4 in GH-15771
- Autotools: Sync CS in
PHP_PROG_AWK
in GH-15772 - Autotools: s/M4 macros/Autoconf macros in GH-15778
- Autotools: Fix gd extension -I flag for bundled libgd in GH-15786
- Convert CRLF line endings to LF in GH-15767
- Autotools: Sync CS for
PHP_PWRITE_TEST
andPHP_PREAD_TEST
in GH-15774 - Sync Zend/*_i386_sysv_elf_gas.S with upstream in GH-15788
- Autotools: Enable adding a list of paths in
PHP_ADD_INCLUDE
in GH-15777 - Autotools: Move extension setup to main check in GH-15797
- Autotools: Check Apache version with apxs and HTTPD_VERSION variable in GH-15476
- Autotools: Refactor
PHP_TEST_BUILD
checks in GH-15798 - Autotools: Obsolete
PHP_TEST_BUILD
,PHP_BUILD_THREAD_SAFE
, andPHP_DEF_HAVE
in GH-15802
Remi Collet
Saki Takamachi
- Fixed the sign to be PLUS if the result is 0 in GH-15599
ext/bcmath
: Fixedbcdiv()
div by one in GH-15629- Fixed LONG_MAX in BCMath ext in GH-15663
- NEWS for
ext/bcmath
: Fixedbcdiv()
div by one in GH-15629 - [RFC] Support object types in BCMath in GH-13741