PHP 7.4 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 7.4.0beta1 is not recommended. PHP 7.4.33 is the latest version in the series.
Downloads
Source Code
git clone https://github.com/php/php-src.git --depth 1 --branch php-7.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:7.4.0beta1-cli-alpine
docker pull php:7.4.0beta1-cli
docker pull php:7.4.0beta1-fpm-alpine
docker pull php:7.4.0beta1-apache
docker pull php:7.4.0beta1-fpm
Commit List
Abyr Valg
- Fixed bug #77946 in c8c183eb62
Andrew Collington
- Fix bug #78291 Missing opcache directives in 768ad70f70
Christoph M. Becker
- Upgrade to SQLite 3.28.0 in e944ae6b2a
- Fix #78212: Segfault in built-in webserver in fa65f5ecf5
- Revert "Temporarily skip test" in d0d02ecc4e
- Swap
implode()
argument order in the test helper in 8aa7865997 - Removed
ext/recode
in 58b607c9ea - Update NEWS and UPGRADING wrt.
ext/recode
unbundling in 76783a9bcc - No more need to cater to pre-PHP-5.3 or PHP-6 versions in a6fa097ceb
- Fix #78282: atime and mtime mismatch in bf242d58e7
- Fix #78283: no output for explicit environment in 8c76d898a9
- Sync mysqlnd version with PHP version in 37043e07df
- Revert "Remove Windows syslog script and syslog.reg" in 6f617b7759
- Allow multiple cache instances per user/host on Windows in e2ed7e6716
- Use regedit to register event source in f34db7fc2a
- Remove remaining lightnings from
run-tests.php
in 55d34f7023 - Move Oniguruma related config stuff to where it belongs in 504cd03fc3
- Put oniguruma include path to proper CFLAGS in 737c1b492c
- Drop superfluous ENABLE_GD_TTF in d3d3404db7
- Remove superfluous HAVE_GD_BUNDLED checks in f8202b5513
Cyril Pascal
- Align segments on huge page boundary only for x86 in 6791107319
David Carlier
- CGI: Fix memory leak on error paths in aa0e29a668
Derick Rethans
- Update versions for PHP 7.4.0beta1 in 6f57802c59
Dmitry Stogov
- Remove duplicated code for (PRE|POST)DEC(OBJ|STATIC_PROP) opcodes in e1f418dd18
- Avoid unintended inlining in 8f0c87e1b6
- Reduce cost for references to strings and resources in d57d74b271
- Set expectation to reduce hot code fragmentation in 0e3d4911fa
- Separate "cold" parts of binary op instructions in be94c0c3c6
- Separate "cold" parts of comparison instructions in ef1a1a0698
- Allow GOTO style helpers in HYBRID VM in 350f2212ff
- Use common code for double math in 0793af0673
- Fixed incorrect specialization (missed IS_INDIRECT handling) in 9ccf3fb996
- Delay IS_UNDEF checks in 1d4c38421a
- Replace deprecated conditions by
ZEND_ASSERT
in c1b9088903 - Slit INC/DEC opcodes into hot/cold parts and remove specialized versioins for LONG_OR_DOUBLE in 349a388b90
- Provide type info in a6812c0c84
- Separate "cold" and common unspecialized code in ee5828205e
- Added specialization for comparison instructions and QM_ASSIGN in 918f09f72a
- Remove old hack in 6fbab09ef0
- Avoid extra specialization for cold opcodes in b30e4a5aa6
- Merge common code in 7cf651c39e
ZEND_DECLARE_ANON_CLASS
doesn't need to skip anything now. It's immediatelly followed byZEND_NEW
in b065fbde19- Use run-time cache to avoid repeatable hash lookups when creating anonymous functions and classes in d5943f5a11
- Use run-time cache to avoid repeatable hash lookups in
ZEND_DECLARE_CLASS_DELAYED
in 445d51347d - Evaluate constant in class scope in 2f51764e5d
- Initialize static_members_table in 60dca2295d
- Fixed unspecialized executor in eaa9048973
- Fixed CALL VM in 8d51af9bc2
George Peter Banyard
- Convert short tag to standard tag in Zend test file in e6c2b28865
- Convert all php_error_docref0 to
php_error_docref
in 1c1de0c41a - Small typo and proto name fix in 548d1ec27c
- Convert short tag to standard tag in Zend test file in e7e66d5275
- Convert E_STRICT into E_NOTICE for
htmlentities()
function in 3a5664fdfe - Renamed MySQLi test to remove duplicate 'mysqli_' in 1a031a242c
- Cleanup of remaining E_STRICT in tests in 6d6d954d0d
George Wang
- Checked in LiteSpeed SAPI 7.5, addressed two main problems in "clean shutdown" introduced in 7.4.3, in eb7e45f662
Maksim Nikulin
- Prevent use after free in fpm_event_epoll_wait in bdf24f8d6d
Markus Staab
- Fix typos in 577ed5bfa4
Matteo Beccati
- Fix FR #71885 (Allow escaping question mark placeholders) in b19fdc18a9
Nikita Popov
- Revert "Fixed bug #76980" in 22ed362810
- Avoid invalid array access in fcgi.inc in dfe5fd2a37
- Clean up
DateTimeZone::getLocation()
test in 9d82a01d01 - Fix iteration limits in SXE test in a207b3574b
- Simplify two
unserialize()
tests in 0c450967e1 - Rename support_strings to !is_list in 2bca35eacc
- Fix invalid array access in mysqli_fork test in a63422029e
- Throw notice on array access on illegal type in c42b7dd6d3
- Additional fix for mysqli_fork test in 852e35317d
- Fix file collisions in phar tests in 07bbc54658
- Add CONFLICTS to recognized sections in 3fa9f9cfae
- Fix bug #78271 in e7a83ec8df
- Add server conflict to soap custom content type test in ba8c4894d8
- Make
proc_open_bug64438.phpt
more robust in d20fc5a192 - Include test name in JUnit testcase name in c02dfddda3
- Don't call
Reflection::export()
internally in 42cac9d7d7 - Support redirect+null descriptors in
proc_open
in 6285bb52fa - Switch to using shell-less
proc_open()
in various server tests in 17f7fb7605 - Add
ZEND_DEP_ME
macro in cbda1b1c6a - Remove redundant 64-bit
ezmlm_hash()
test in 59852c0321 - Improve bless_tests in 9a274de4f4
- Swap
implode()
argument order in some tests in 2e56e14e39 - Remove unnecessary uses of
restore_include_path()
in tests in 9345c191db - Remove unnecessary uses of allow_url_include in tests in 94d37a5dd7
- Remove unused
tsrm_strtok_r()
function in 709897c2a5 - Remove duplicate XtOffsetOf() definitions in
php.h
in e2c3bc80e3 - Fixed bug #78279 in 4a91f66b8f
- Use TRY_ADDREF/TRY_DELREF in soap in a7de2af46c
- Don't split T_INLINE_HTML at partial PHP tag in 0d568b9fd5
- Fixed bug #78010 in 193f28c7d5
- Emit T_BAD_CHARACTER for unexpected characters in 9ad094e371
- Fix bug #77124 in 88ffe05797
- Move shebang handling into the lexer in c5f1b384b5
- Combine SKIP_TOKEN+RETURN_TOKEN into one macro in fcdb12ed4d
- Canonicalize file-names in zip tests in e2e3ddac7d
- Fix name collisions in fputcsv tests in 26977fdfdd
- Fixed bug #78297 in 8a19fe29de
- Support <?php followed by EOF in c9acc90186
- Use
ZEND_HASH_FOREACH
APIs in a few more places in 290e520c03 - Fix bug #52752 by not using
mmap()
to lex files in 5161cebe28 - Remove
ZEND_HANDLE_FD
in e08cc4d921 - Remove unused _get_zval_ptr_cv_BP_VAR_UNSET function in a0f450a023
- Introduce
zend_stream_init_fp()
API in 46faf8f018 - Introduce
zend_stream_init_filename()
in 49bac9b77b - Drop free_filename field from
zend_file_handle
in e0eca26285 - Remove
ZEND_HANDLE_MAPPED
in b317f0eb59 - Avoid double buffering in Zend streams in a986e70991
- Avoid unused
fstat()
call in 5a90dc77b8 - Revert "Avoid unused
fstat()
call" in 856c5d2837 - Use reported fstat filesize for PHP streams in c2c5c9a973
- Avoid duplicate
fstat()
for includes in 07a4d134ab - Fixed bug #69100 in b864abfe23
- Remove lightning in 562591f5eb
- Merge Linux & Windows fwrite test in aa2e2c3f93
- Reduce number of workers in test in 5e4dbce586
- Deprecate
get_magic_quotes_gpc()
andget_magic_quotes_runtime()
in b2ea507bea - Deprecate
array_key_exists()
on objects in 0ba7c3eadf - Deprecate Reflection
export()
methods in 3121b7174f - Deprecate encoding as 3rd param to
mb_strrpos()
in 39e756e7fe - Deprecate
ezmlm_hash()
in e9e2fa4ad4 - Deprecate
hebrevc()
in 4e4d8a4a6c - Deprecate
money_format()
in b1cdf06673 - Deprecate
is_real()
function in 4e190691e2 - Deprecate FILTER_SANITIZE_MAGIC_QUOTES in cd2f2cd7d0
- Deprecate
implode()
with swapped parameter order in 46b982409a - Deprecate (real) cast in e41b7f6db4
- Deprecate
convert_cyr_string()
in b3668aabf7 - Deprecate
restore_include_path()
in 964de035a7 - Deprecate allow_url_include in b3f74b0b7d
- Deprecate unbinding $this from non-static closure in 28cf080701
- Add deprecations to UPGRADING in 23bb9f4e2f
- Remove test for bug #77185 in b59a9381b9
- Revert "Add
ReflectionReference::getRefcount()
" in 19588a8f3b - Special-case rc=1 self-referential arrays in ReflectionReference in c817b8020c
- Report errors from stream read and write operations in d59aac58b3
- Also report errors from Zend stream reader operation in 5664035ffe
- Add upgrading entries in 845d07b343
- Try to fix macos build in 9e4603f772
- Avoid references in TMP var in 1eb706179f
- Revert "Drop free_filename field from
zend_file_handle
" in d9680272c7 - Don't skip uninitialized typed props in
get_class_vars()
in a49d53baa2
Peter Kokot
- Remove TSRM/tsrm_config.
w32.h
in d63fdced2e - Refactor undefining PACKAGE_* symbols in a6daded1a4
- Remove
tsrm_config_common.h
in 33994ebd95 - Remove WARNING_LEVEL fix for QNX in 499f2ac132
- Remove checks for always enabled spl and pcre in f5e4771824
- Remove unused recode extension artefacts in f3cf8966be
- Remove
php_multiple_shlib_versions_ok
in 4e0af6d862 - Update changelogs in f573ba1948
- Remove
PHP_MYSQL
variable in 7a6d737de7 - Remove timelib outdated defines in c72d6da461
- Remove duplicate PTHREADS template define in 66c02cc0a1
- Remove unsed zts check for sqlite3 in e39296d10b
- Remove conditional calls of always available macros in 94421e5724
- Remove usage of
PHP_AIX_LDFLAGS
in 93b3d2f6ee - Remove some .dsp/.dsw leftovers in 07daf6cd62
- Remove Windows syslog script and syslog.reg in cc44bad1f6
- Remove unused files in 59ba991b9c
- Remove win32/php_stdbool.h in 24f4dff075
- Remove unused build checks in 63d6a2b697
- Update changelog in a520974740
- Simplify functions checks in m4 in 476339646c
- Fix typo in e7fcc45c43
- Remove unused HAVE_SHM_MMAP_ZERO and HAVE_SHM_MMAP_FILE in 6afc3cede8
- Update changelog in fa7fbfd518
- Remove duplicate AC_PROG_CPP call in daa243d1a0
- Remove unused MISSING_MSGHDR_MSGFLAGS in 53299d610a
- Update changelog in 7dc6c3960b
- Remove unused defines in 359a78b16c
- Fix typo in 8db732155f
- Update changelogs in b35b9eb1d6
- Remove duplicate socklen_t check in bbdbc2658c
- Remove safe_mode directive when installing
ext/phar
in 7cbc6b6546 - Fix typos in FFI in 81fd1c5206
- Remove unused sqlite symbols in 6de97402b5
- Move HAVE_SQLITE3_CLOSE_V2 to pdo_sqlite in f5227c5863
- Fix failed tests for phar in b1643e166d
- Remove HAVE_LIBZIP in 15782b27b8
- Remove some unused HAVE_* symbols in 1b969a74d0
- Remove build.mk usage in ef165b4422
- Remove HAVE_DSA_DEFAULT_METHOD in 4b03e102c5
- Fix internals upgrading log in 9b8bf13b3a
- Remove HAVE_PQPUTCOPYEND in a2b758dab5
- Remove HAVE_OCILOBISTEMPORARY and HAVE_OCICOLLASSIGN in 5d827c89cf
- Update NEWS in 8f384bea93
- Update NEWS in b42a13b08a
- Update NEWS in 1fa238a7b3
Remi Collet
- improve libargon2/libsodium compatibility in db0eaa8cf1
- Fix #78269 password_hash uses weak options for argon2 in eab0079c90
- Fix #78269 password_hash uses weak options for argon2 in a7ff3a6483
- next is 7.2.22 in c9037421ac
- Fixed bug #78314 (missing freetype support/functions with external gd) in a85e4d5336
- improve temporary fix for system libgd in fff6b18657
- cleanup gd build with system libgd - drop need to use libpng with system libgd - drop need to use libjpeg with system libgd - drop need to use libXpm with system libgd - drop need to use libfreetype with system libgd - improve configure comments in 31d85b8417
rjhdby
- Deprecate alternative array access syntax in d574df63dc
Sara Golemon
- Relax argon2 mem_cost down to 64k, bump time_cost to 4 in f65956e4fb
Sebastian Pop
- [AArch64] Use crc32 instructions when available in 2a535a9707
- neon vectorization for base64 in 3b73c9fb86
- vectorize string-escape with NEON in af7639683f