PHP 8.4.0beta1 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.0beta1
./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.0beta1-cli-alpine
docker pull php:8.4.0beta1-cli
docker pull php:8.4.0beta1-fpm-alpine
docker pull php:8.4.0beta1-apache
docker pull php:8.4.0beta1-fpm
Commit List
Arnaud Le Blanc
- Fix crash during GC of suspended generator delegate in GH-15275
- Change YIELD/YIELD_FROM to do not increment opline in GH-15328
- Ensure proper alignment of zend_accel_shared_globals.interned_strings in GH-15359
Ayesh Karunaratne
ext/curl
: Add HTTP/3 constants in GH-15350
Calvin Buckley
- Show build provider and unify version information printing in GH-14657
- Update versions for PHP 8.4.0beta1 in 0156795cbe
Christoph M. Becker
- Fix GH-15181: Disabled output handler is flushed again in 887e6b9c45
- Fix
odbc_data_source_001.phpt
in 6713d51631 - Output diagnostics when SQLFetch with SQL_ERROR in 9c4aa2b4fc
- Use new MSVC preprocessor for VS 17 builds in d5c4522547
- Update Windows CI to build with vs17 in af8ef4c5b0
zend_enum
: Rename try parameter to avoid conflict with C++ in 423fc811bd- Fix nightly Windows builds regarding CRT and runners (GH-15273) in 2832b4254c
- Fix comments in win32/sendmail.c (GH-15326) in d98c4b6ebe
- Fix violation of the one definition rule in
ext/com_dotnet
(GH-15327) in ee02e4be6a - Fix some -Wimplicit-function-declaration errors on Windows (GH-15325) in 9c537de8a5
- Declare gdImageGetInterpolationMethod() for bundled GD (GH-15329) in 9b41c8b1b5
- Support somewhat recent clang versions on Windows (GH-15324) in 8740fdf1f6
- Skip fb4_datatypes*.phpt for Firebird server < 4.0.0 (GH-15354) in 266192372c
David CARLIER
ext/readline
: readline_info fix usage when the buffer is not initialised in GH-15139ext/standard
: disable one ipv2long test. in GH-15200
David Carlier
- sapi/phpdbg: windows update exception type falling into segfault in 3c36c7308d
- CI disable leak sanitizer on two libedit tests temporarily in cad0ce5382
- Fix GH-15210: phpdbg_print_changed_zvals working on a real copy instead in 9aeb6761b5
ext/standard
: enabling feature detection auxiliary vector on OpenBSD in d5c7f3b0e6ext/sockets
: controlling ephemeral port ranges on *BSD in 1d198c660cext/sockets
: adding SOCK_CLOEXEC/SOCK_NONBLOCK options in d052d612d9
disservin
- Update ci actions/checkout to v4 in GH-15283
Gina Peter Banyard
- Zend: Add test disabling
assert()
function in bc8909aac3 ext/dba
: Deprecate passing null|false todba_key_split()
in GH-15297ext/spl
: Follow-up on GH-9704 in GH-15295ext/xml
: Deprecatexml_set_object()
and passing non-callable strings as handlers in GH-15293ext/core
: Deprecate passing E_USER_ERROR totrigger_error()
in GH-15308ext/soap
: Deprecate passing an int toSoapServer::addFunction()
in GH-15310- main/streams: Voidify
statbuf_from_array()
in GH-15319 ext/standard
: Minor refactoring to URL scanner code in GH-15321ext/mysqli
: Mark function pointer as returningzend_result
in GH-15342ext/mysqli
: Mark return type aszend_return
in GH-15345ext/mysqli
: Deprecate passing the parameter tomysqli_store_result()
in GH-15311- ext/(standard|spl): Deprecate passing a non-empty string as the $enclosure parameter in GH-15362
- Deprecate using "_" as a class name in GH-15360
ext/standard
: Throw ValueErrors instr_getcsv()
for invalid inputs in GH-15365
Gina Peter Bnayard
ext/xml
: Add an explicit test case about unsetting a handler with empty string in caae950ff7ext/mysqli
:mysqli_report()
only ever returns true in efd33f57c7ext/mysqli
: Use an assertion for condition that is checked by ZPP in 0c827f6b25ext/mysqli
: Remove PHP 6 remnants in c2bdb31b6aext/mysqli
: Improve variable name and type in 5d1db3dd56ext/gmp
: Add test about manually (un)serializing in d74b513f68ext/gmp
: Usezend_string
to GMP object function directly in f8626638c4ext/gmp
: Refactorgmp_import_export_validate()
in 6114379ad2- ext/standard/filters.c: Remove some register keywords in 54cc76fdb4
- ext/standard/filters.c: Voidify
php_conv_base64_decode_ctor()
in 2baadf3807 - ext/standard/filters.c: Use
zend_result
return type instead of int in 9cfe9e10ba - ext/standard/filters.c: Use bool type where possible for persistent field/param in 91aca96a8e
- ext/standard/head.c: Remove some useless casts in 2297e50772
- ext/standard/head.c: Change return type of
php_header()
to bool in 67a15cf457 - ext/standard/info.c: Removed
php_info_html_esc()
in 739805d099 - ext/standard/info.c: Use size_t type where appropriate in 5078eb080e
- ext/standard/info.c: Make some functions static in e0f6e3de34
- Add more tests covering deprecation of _ as CE name in 5622def429
Ilija Tovilo
- Allow optimizer to depend on preloaded symbols in GH-15021
- Add
ReflectionProperty::getSettableType()
test for get-only backed property in 85fa983fe6 - Remove IS_STATIC_VAR_UNINITIALIZED in GH-15227
- Fix zend_function.prop_info pointer for trait hooks in GH-15245
- Fix inheritance of hooks onto plain properties in 5d9c155dd3
- Fix missing variance check for abstract set with asymmetric type in GH-15157
- [JIT] Avoid generating fast property assign path for readonly properties in GH-15260
- Disallow indirect modification on readonly properties within __clone() in GH-15012
- Fix git check in verify generated files (GH-15363) in 9be52dcd62
Jorg Adam Sowa
- Deprecate date_sunrise and date_sunset constants in GH-12978
- ValueError on null byte in
session_name()
in GH-15286 ext/session
: session.save_handler - add tests fortwo uncovered cases in GH-15337
Kamil Tekiela
- Deprecate mysqli_refresh in GH-11929
- Deprecate mysqli_ping in GH-11945
- Deprecate mysqli_kill in GH-11926
- Update arginfo for mysqli and spl_fixedarray in GH-15356
- Deprecate MYSQLIREFRESH* constants in GH-15358
Máté Kocsis
- Deprecate Soft-deprecated DOMDocument and DOMEntity properties in GH-15369
Niels Dossche
- Fix UAF when removing doctype and using foreach iteration in b282dd749f
- Minor cleanup in dom_character_data_append_data in GH-15173
- Fix GH-15192: Segmentation fault in dom extension (html5_serializer) in 76ad89ccff
- Add a test for setting the innerHTML on a prefixed XML element in GH-15204
- Fix GH-15179: Segmentation fault (null pointer dereference) in ext/standard/url_scanner_ex.re in 67ce8759e8
- Deprecate DOM_PHP_ERR in GH-15234
- Remove
DOMImplementation::getFeature()
in GH-15233 - Fix SoapFault property destruction in 11fbe8801b
- Use unsigned int instead of int for refcount for libxml objects in GH-15247
- Fix crash when converting array data for array in shm in xxh3 in ca84662c87
- Deprecate passing incorrect data types for options to
ext/hash
functions in GH-15236 - Revert "Fix bug #69280: SoapClient classmap doesn't support fully qualified class name (#14398)" in 28290655e8
- Access long value directly for call to
count()
in simplexml in GH-15278 - Fix GH-15268: heap buffer overflow in phpdbg (
zend_hash_num_elements()
Zend/zend_hash.h) in a6c547d1dd - Fix GH-15292: Dynamic AVX detection is broken for MSVC in 00001c4a0c
- Fix uninitialized value watchpoint_hit in 2e26559fcd
- Add necessary SKIPIFs to new phpdbg tests in 4d71580e00
- Simplify document standalone setter in GH-15320
- Fix incorrect type check in removeAttributeNode in db5ea45f0f
- Fix GH-15331: dom: Element::$substitutedNodeValue test failed in 8d7365b6f0
- Get rid of le_istream in b7be849fad
- Get rid of le_dispatch in 3f54be8053
- Update TODOs in com_dotnet in e1c8329b8c
Peter Kokot
- Autotools: Normalize
PHP_OUTPUT
arguments in GH-15177 - Autotools: Update php.m4 CPP macros help texts in GH-15188
- Autotools: Fix ffi checks in GH-15197
- Sync CPP macros in
ext/iconv
in GH-15191 - Autotools: Update configure.ac CPP macros help texts in GH-15189
- Sync HAVE_<extension> help texts in GH-15167
- Sync file permissions in 48916cec33
- Fix GH-13199: Redundant prompt in phpdbg with libedit/readline in dc670cb7f6
- Autotools: Remove obsolete config.status invocations in GH-15185
- Autotools: Update config.guess to 2024-07-27 and config.sub to 2024-05-27 in GH-15190
- Sync AC_DEFINE help texts in GH-15207
- Replace
PHP_OUTPUT
with AC_CONFIG_FILES in GH-15186 - Autotools: Improve ftp and mysqlnd SSL configure options in GH-15164
- Autotools: Replace AC_MSG_ERROR with AC_MSG_FAILURE in GH-15209
- Refactor HAVE_SQLDATASOURCES check in GH-15222
- Sync preprocessor macros help texts in GH-15218
- Autotools: Improve
--with-mm
configure option check in GH-15212 - Autotools: Refactor debug checks in GH-15215
- Add and update
ext/dba
preprocessor macros help texts in GH-15221 - Autotools: Check for cross_compiling=yes in GH-15238
- Fix HAVE_LIBGD usage in GH-15226
- Add and update
ext/odbc
preprocessor macros help texts in GH-15223 - Fix bug #51558: shared readline build fails (#15242) in 0b25e26b4e
- Autotools: Refactor thread safety checks in GH-15214
- Autotools: Add
ext/readline
preprocessor macros help texts in GH-15241 - Autotools: Add pkg-config for GMP library in GH-15166
- Autotools: Add phpized configure log and help separators in GH-15251
- Update preprocessor macros help texts for enchant and snmp extensions in GH-15255
- Autotools: Quote AC_PATH_PROG arguments in
ext/pdo_firebird
in a49e0a42a1 - Update
ext/zip
preprocessor macros help texts in GH-15271 - Update
ext/sodium
preprocessor macro help texts in GH-15270 - Update
ext/tidy
preprocessor macros help texts in GH-15269 - Update pgsql extensions preprocessor macros help texts in GH-15290
- Update and sync PHP build preprocessor macros help texts in GH-15298
- Autotools: Remove DEBUG_CFLAGS in GH-15300
- Autotools: Sync CS in Zend.m4 in GH-15304
- Autotools: Sync CS in hash extension in GH-15302
- Autotools: Normalize phpdbg list of source files in GH-15306
- Autotools: Quote AC_CHECK_PROG* macro arguments in 36f6a20a6b
- Autotools: Quote
PHP_CXX_COMPILE_STDCXX
macro arguments in 42c9963133 - Autotools: Remove too basic optimization flag cleanup in d7a8a04eb9
- Update sqlite3 and pdo_sqlite preprocessor macros help texts in GH-15291
- Update gd extension preprocessor macros help texts in GH-15296
- Update mysql preprocessor macros help texts in GH-15288
- Autotools: Add pkg-config support for NET-SNMP library in GH-15261
- Autotools: Fix SNMP checks in GH-15263
- Autotools: Refactor mysqli extension checks in GH-15323
- Autotools: Quote
PHP_CHECK_SIZEOF
macro arguments in 2b30b22d7d - Autotools: Refactor pdo_mysql checks in GH-15334
- Autotools: Sync CS across the configure.ac in GH-15332
- Autotools: Refactor mysql_config checks in pdo_mysql in GH-15336
- Autotools: Sync CS in opcache extension in GH-15340
- Autotools: Sync CS in
ext/pcntl
in GH-15341 - Autotools: Remove dependency related errors in GH-15344
- Autotools: Sync CS in extensions in GH-15343
- Autotools: Remove PDO dependency related errors in GH-15347
- Add pcre as a configure step dependency to fileinfo in GH-15349
- Remove redundant middle newlines in "Autotools" related files in 9fcc1bca8a
- Autotools: Use AS_CASE in
ext/pdo_odbc
in GH-15355 - Autotools: Refactor iconv implementation checks in GH-15357
- Autotools: Sync CS in gd extension in GH-15364
- Autotools: Wrap long texts with m4_text_wrap in GH-15368
- Autotools: Sync CS in
ext/pdo_firebird
in GH-15372 - Autotools: Check cli SAPI configure checks conditionally in GH-15370
- Autotools: Fix phpdbg build in GH-15373
- Autotools: Fix pdo_firebird shared build in GH-15371
Quentin Dreyer
- Fix GH-15155: Keep stream context in filtered streams in 7b32a145d9
Remi Collet
- use libedit instead of readline for CI in 521178709e
Saki Takamachi
- RFC: Change GMP bool cast behavior in GH-15151
Simonov Denis
- pdo_firebird: Formatting time zone types in 225034dbbc
Tim Düsterhus
- Improve link styling in PHPInfo in GH-15077
- unserialize: Deprecate the 'S' tag in GH-12309
- random: Deprecate
lcg_value()
in GH-15211 - session: Deprecate
session.sid_length
andsession.sid_bits_per_character
in GH-15213 - random: Remove
engine_combinedlcg.c
in GH-15216 - standard: Stop using
php_combined_lcg()
inuniqid()
in GH-15217 - random: Optimize
Randomizer::getBytes()
in GH-15228 - hash: Add SHA-NI implementation of SHA-256 in GH-15152
Tyson Andre
- Deprecate SplFixedArray::__wakeup() in GH-9704