PHP 8.4.0beta4 is an old release of PHP 8.4 series. Using the latest version PHP 8.4.5 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.0beta4
./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.0beta4-cli-alpine
docker pull php:8.4.0beta4-cli
docker pull php:8.4.0beta4-fpm-alpine
docker pull php:8.4.0beta4-apache
docker pull php:8.4.0beta4-fpm
Commit List
Ayesh Karunaratne
ext/curl
: AddCURLOPT_PREREQFUNCTION
in GH-13255
Bernd Kuhls
- Fix GH-15587: Autotools: fix configure check for aarch64 CRC32 API in 5947db6bb8
Christoph M. Becker
- Support AVX-512 builds on Windows in 2f17f157ca
- Fix format specifiers and arguments in com_dotnet (GH-15398) in 4b2dc58651
- Explicitly drop support for old clang versions on Windows (GH-15415) in b0ac9bf669
- Drop support for MYSQL_TEST_SKIP_CONNECT_FAILURE in GH-15461
- Drop erroneous CLEAN section in d472866f33
- Drop support for MYSQL_TEST_EXPERIMENTAL (GH-15467) in 7fa2dbf924
- Fix
ZEND_FASTCALL
definition wrt. x64 Windows clang builds (GH-15425) in f16cb1866a - Remove unnecessary Windows specific time formatting (GH-15474) in 4a77ce2022
- Avoid multiple connects in
SKIPIF
sections (GH-15470) in 7a9120e5f3 - Don't skip tests which are supposed to fail; mark them as
xfail
in GH-15472 - Fix GH-15432: Heap corruption when querying a vector in b1211c1e4a
- Cater to raised requirement of fbclient 3.0+ for pdo_firebird (GH-15498) in 96840072fc
- Revert "Merge branch 'PHP-8.3'" in b75775ea39
- Revert "Merge branch 'PHP-8.3'" in c9ea4d76af
- Fix rename_variation12*.phpt parallel test conflicts (GH-15518) in d4263ddc40
- Support AVX-512 builds on Windows (GH-15159) in e5a30274d8
- Drop unused, but confusing macro definition (GH-15541) in 6a51062c85
David CARLIER
David Carlier
ext/sockets
: adding SO_BINDTOIFINDEX in d713e3619e- Fixed GH-15547: curl_multi_wait expects a signed int for timeout in cc67220ea3
Derick Rethans
- Add NEWS entry in 0f7aebb61a
- Merged pull request GH-14581 in cce27c6725
Flavio Heleno
- Add PHP-FPM memory peak to the scoreboard in 67aac59cfc
Florian Engelhardt
- Export opcache shared globals in GH-15543
Gina Peter Banyard
- ext/opcache/ZendAccelerator.c: Restrict MD5 header include to Windows in GH-15418
ext/standard
: Throw a RequestParseBodyException instead of InvalidArgumentException in GH-15468ext/standard
: Improve checking of allowed_classes option in GH-15267ext/mysqli
: Minor clean-up in GH-15526- main/network: Use more appropriate types in GH-15511
- Zend: Voidify virtualcwd(de)
activate()
in GH-15554 - Phar offset exist issue with entry classes not based on PharFileInfo in GH-14503
Gina Peter Bnayard
- Zend/zend_object_handlers.c: Remove unused include in 4a4aae540b
ext/phar
: Use standard C types in 04320d2fbaext/standard
: Remove deprecated php_uint32 and php_int32 typedefs in 3e05c86c35- Remove unused ext/standard/basic_functions.h header inclusions in 3813ad10dc
- ext/standard/mail.c: Reduce scope of some variable declarations in 962aba3b12
- ext/standard/mail.c: change return type of
php_mail()
to bool in 312c919a2d - ext/standard/mail.c: Move macros out of the header in a171b20c7c
- ext/standard/mail.c: Move
php_mail_header_value_error_type
enum out of header in ebfef2505d - ext/standard/crc32: Use
zend_result
return type and remove unused header in 775ca03eb8 - ext/standard/file.c: Use RETURN_BOOL() instead of if-else in 369eeb73ca
- ext/standard/file.c: Use more appropriate types in 9147687b6d
- Zend: Add helper for "cannot be empty" ValueError in 96d572a18e
- Use new helper function for "cannot be empty" ValueErrors in e7c4d54d65
- ext/standard/exec.c: Use ZPP path modifier to check for nul bytes in 10738141d7
ext/gettext
: Remove duplicate domain length checks in f6c464fee5ext/dba
: Remove duplicate check for empty mode in ad8480304dext/dom
: Use standard wording for ValueError in 6d9a74cde0- ext/standard/string.c: use standard wording for ValueError in
str_pad()
in 997199e938 ext/mbstring
: Use standard wording for ValueError in 9a2fdbec48ext/pcntl
: Use standard wording for ValueError in c811d58953- Use "must not" instead of "cannot" wording in 5853cdb73d
ext/hash
: Specialize copy function typedef in c26e77c4c5ext/hash
: Make return typezend_result
for serialize function typedef in 937c4e4ac6ext/phar
: Use standard naming for PHP functions in 947f72c181ext/phar
: Use size_t for string lenghts in 009039d447ext/phar
: Refactor part oftar.c
in 03be1ac0adext/phar
: Adjust return types for methods that always return true in d015af60dfext/phar
: Move some header functions intoutil.c
in 81d232fed5ext/phar
: Use more specialized types instead of int in 20f7e08687ext/phar
: Simplify a return condition inPhar::offsetExists()
in 6f986837ecext/phar
: Add some const qualifiers in 51bb8cfcb5ext/phar
: Usezend_string
instead of char* len pair in d55074ede4ext/phar
: Reorganise some headers in f9c69bc392
Go Kudo
- libtool: Don't remove gcov *.gcno files in GH-15441
- Fix MSan false-positive in
zend_max_execution_timer
in GH-15408 zend_max_execution_timer
: fix gcc compatibility in GH-15447zend_max_execution_timer
: fix gcc compatibility in GH-15447- Update extension skeleton .gitignore in GH-15542
Ilija Tovilo
- Fix param with hooks but no visibility not treated as cpp (GH-15442) in 770616b823
- Fix missing compile error when declaring hooked props on readonly classes (GH-15439) in 36b1977415
- Fix various hooked object iterator issues (GH-15394) in 60f87f29bb
- Fix virtual properties in
get_class_vars()
(GH-15494) in b6d7c011b8 - Replace OBJ_PROP_PTR_TO_NUM() with
zend_get_property_info_for_slot()
in 327588abf9 - Remove
ZEND_ACC_ABSTRACT
from prop variance check in 8fcf34d598 - Fix building of callgraph including preloaded symbols (GH-15545) in b839c5f1af
- Stop recording of trace when encountering hook in 606eb849bb
- [RFC] Asymmetric visibility v2 (GH-15063) in 8df557ac42
Jakub Zelenka
Jorg Adam Sowa
ext/session
:session_create_id()
now throws a ValueError for large prefix in GH-15338ext/session
: Warn when providing invalid values for session.gc_probability and session.gc_divisor in ff69f334f1
Juliette
- PHP 8.4 | Exit as function: fix incorrect parameter name in GH-15433
Kamil Tekiela
- Remove PHP 6 leftovers and fix mysqli tests in GH-15464
- Clean up mysqli tests in GH-15473
- Remove
mysqli_change_user_get_lock.phpt
in GH-15482 - Remove MYSQLI_STMT_ATTR_PREFETCH_ROWS constant in GH-15485
- Drop
mysqli_stmt_result_metadata_sqltests.phpt
in GH-15488 - Fix error message and add UPGRADING entry in 4baf6a643b
- Drop MYSQLI_CURSOR_TYPE_FOR_UPDATE & MYSQLI_CURSOR_TYPE_SCROLLABLE in GH-15486
- Fix a mistake in mysqli test in 144c086c46
- MySQL 9: Add support for VECTOR type in GH-15431
- Update UPGRADING in c5ae122b2f
- Fix
mysqli_stmt_get_result.phpt
in GH-15495 - Remove MYSQLI_TYPE_INTERVAL constant in c290996db6
- Fix
mysqli_fetch_field_types.phpt
in 0775b99d5e - Deprecate disabling use_only_cookies in GH-13578
- Remove ifdefs from stub file in 082b964dfa
- Remove unsupported mysqlnd options in 2446500d97
- Remove dead code in 195d59a83c
Marc Bennewitz
- fixes GH-13773: DatePeriod does not take microseconds into account in d6113ba8fe
Máté Kocsis
- Suppress deprecation notices when
ext/dom
properties are accessed by the get_debug_info handler in GH-15530 - Fix registration of internal readonly child classes in GH-15459
Niels Dossche
- Fix NULL pointer dereference with NULL content in legacy nodes in GH-15546
- Correctly specify secret instead of seed in
ext/hash
deprecation message in GH-15557 - Fix NULL pointer dereference with NULL content in legacy nodes in title getting in GH-15558
- Fix GH-15551: Segmentation fault (access null pointer) in ext/dom/
xml_common
.h in 9af574c26e - Fix GH-15565:
--disable-ipv
6 during compilation produces error EAI_SYSTEM not found in 4b6575a1f9 - Update Lexbor in GH-15573
- Fix GH-15570: Segmentation fault (access null pointer) in ext/dom/html5_serializer.c in 690ce6d5d4
- Allow
ZEND_ACC_VIRTUAL
to be used to not have property backing storage without resorting to hooks in f78d5cfcd2 - Use virtual annotation in XMLReader in 6c63c48a7e
- Improve virtual property error message in baac01f594
Orlando Thöny
- FPM: Remove usage of non-existing MAX_LINE_LENGTH constant in GH-5634
Peter Kokot
- Autotools: Sync CS in sapi/fuzzer in GH-15417
- Autotools: Sync CS in fpm SAPI in GH-15412
- Autotools: Fix
PHP_EMBED_TYPE
variable substitution in GH-15414 - Autotools: Add note about
PHP_ADD_EXTENSION_DEP
usage in 8853cf3ae9 - Autotools: Sync CS in sapi/cgi in GH-15407
- Autotools: Use AS_* macros in apache2handler SAPI in GH-15423
- Autotools: Fix external PCRE JIT check in GH-15430
- Autotools: Simplify
PHP_SELECT_SAPI
in apache2handler SAPI in GH-15444 - Add hash extension to soap dependencies in GH-15449
- Autotools: Remove redundant SAPI_SHARED assignment in GH-15453
- Remove php_win32_init_gettimeofday declaration in GH-15451
- Autotools: Replace obsolete backticks with $(...) in apache2handler in GH-15454
- Autotools: Simplify
PHP_PDO_DBLIB
conditions in 0064c42215 - Autotools: Sync CS in pdo_odbc in GH-15466
- Autotools: Remove
PHP_LIBDIR
adjustment in pdo_dblib in GH-15463 - Update
ext/mbstring
andext/snmp
dependencies in GH-15469 - Autotools: Move AWK finder to
PHP_INIT_BUILD_SYSTEM
in GH-15478 - Add date extension to dependencies in GH-15475
- Autotools: Move auto_cflags marker to
PHP_INIT_BUILD_SYSTEM
in GH-15487 - Fix GH-15501: Windows HAVE_<header>_H macros defined to 1 or undefined in GH-15508
- Fix GH-15515: Configure error grep illegal option q in GH-15516
- Fix bug GH-15514 (Configure error: genif.sh: syntax error) in 48a18e5be7
- Autotools: Fix stack direction check in GH-15528
- Autotools: Move Zend/zend_config.h to AC_CONFIG_COMMANDS in GH-15538
- Autotools: Move abs_srcdir and abs_builddir to init macro in GH-15537
- Autotools: Add min-version argument to
PHP_PROG_PHP
macro in GH-15477 - Autotools: Check re2c version with AS_VERSION_COMPARE in GH-15465
- Fix Solaris 10 build: missing
libproc.h
in GH-15525 - Remove unused buffer variables in GH-15550
- Autotools: Remove obsolete compiler reset in GH-15549
- Autotools: Sync CS in
ext/standard
in GH-15560 - Autotools: Use a no-op command in PKG_CHECK_MODULES in GH-15562
- Fix GH-15534: Bump minimum libxml2 version to 2.9.4 in GH-15536
- Autotools: Replace break 2 with break in GH-15563
- Autotools: Sync CS in
ext/tidy
in GH-15561 - Autotools: Simplify adding tidy cflags in GH-15577
- Autotools: Sync CS in
ext/phar
in GH-15586 - Autotools: Fix tidy library checks in GH-15576
Remi Collet
- exit_as_funtion RFC follow-up: ensure default INI settings used in status test in GH-15420
Saki Takamachi
ext/bcmath
: Optimizebcdiv
processing in GH-14660- Update versions for PHP 8.4.0beta4 in 80c0a4323d
Simonov Denis
- pdo_firebird: Cleanup code (GH-15510) in 8487ddb8a3
^_^
- mysqlnd: support ER_CLIENT_INTERACTION_TIMEOUT in GH-13618