PHP 7.4 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 7.4.0alpha3 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.0alpha3
./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.
Docker/Podman Containers
docker pull php:7.4.0alpha3-cli-alpine
docker pull php:7.4.0alpha3-cli
docker pull php:7.4.0alpha3-fpm-alpine
docker pull php:7.4.0alpha3-apache
docker pull php:7.4.0alpha3-fpm
Commit List
Alex Scott
- Fix bug #78138: opcache.validate_permission incorrectly works with PHAR files in a4acff3e21
Anatol Belski
- Fix typo in b926690947
- Fix magic data in 02fc2fe8c9
- Set buffer to NULL to prevent double free (Kamil Dudka at redhat) in 5ae0a6b784
Christoph M. Becker
- Fix #78202: Opcache stats for cache hits are capped at 32bit NUM in 4366f22dfc
- Show actual enchant version if possible in 218c18530a
- Use the portable
zend_strndup()
instead ofstrndup()
in bc0db8ce45 - Fix memory leak in COM ctor in 8357a696ab
- Fix brittle test in be559e6c37
- Add missing SKIPIFs in 75bc3446f8
- Add missing SKIPIFs in 57688ad7bf
- Fix NEWS in 41949bb71e
- Fix #78241:
touch()
does not handle dates after 2038 in PHP 64-bit in 44c8b7414c - Temporarily skip test in 4e5a717866
- Remove superfluous assignment in 30441e65dd
- Fix TsHashTable related race conditions in 98b6330ab4
- Implement FR #77230: Support custom CFLAGS and LDFLAGS from environment in 338e1b245d
David Carlier
- opcache huge pages: Little fix for FreeBSD in 994a01ea43
- Fix opcache huge page mapping on FreeBSD in 7f1fef9fe0
Derick Rethans
- Update timelib to 2018.02 in aae5907cb7
- Fixed tests due to changed timezone data in cc3fe3bd30
- Update versions for PHP 7.4.0alpha3 in a51e1116a8
Dmitry Stogov
- Prevent useless hash lookups in bd0cb99d8c
- Reduce overhead of delayed early binding in e8f1f70101
- Set
ZEND_ACC_LINKED
flag after early binding (for consistency) in 1d534b9da5 - Cleanup in ccbc121cb1
- Fixed variance check for abstract constructor during erlay binding in f09d41ffc0
- Replace previosly checked conditions by
ZEND_ASSERT()
in 215b5a7db8 - Remove always true/false conditions, remove dead conde and simplify code in 6288fc19dd
- Reorder conditions to minimize number of checks on fast path in f7faa62c43
- Private methods don't have to be duplicated in 36b7021e2c
- Avoid double checks on early binding in 83b99527df
- Inline hot path in a58964be82
- Separate common code abd eliminate useless checks in e7446c1b2d
- Fixed use-after-free in ba8033feb0
- Reduce overhead in 143f4e3b5c
- Fixed GOTO VM in 39a0854307
- Micro-optimization in f2b6b2eee8
- Eliminate exception checks in f58c645dcc
- Use string destructor instead of general
zval_ptr_dtor_nogc()
in 2d4bb4f44a - Separate slow code in cbbd473bdd
- Fixed build without global register variables in baa883d3fc
- Optimization of INC/DEC helpers in 56b8b165f8
- Better optimization in RELEASE build. ZEND_ASSERT(s) prevented optimization in 09041151de
- Split destructor in e3d35b6434
- Introduce and use
ZEND_VM_INLINE_HANDLER()
to avoidZEND_RETURN
exception in 925fd0fe6f - Improve
zend_binary_assign_op
helpers in ef05eab432 - Replace
ZEND_ASSIGN_ADD
(and others) byZEND_ASSIGN_OP
,ZEND_ASSIGN_DIM_OP
,ZEND_ASSGIN_OBJ_OP
andZEND_ASSIGN_STATIC_PROP_OP
in 48ca5a1e17 - Eliminate useless checks in 55f7d3b70a
- Fixed opcode description in 1305d9c0d2
- Delay EG(exception) check on slow path in 9a833438d1
- Fixed dispatch from inlined hybrid opcode to another opcode in 1804fd634e
George Wang
- Updated to LiteSpeed SAPI V7.4.3 in 32af676bd9
Jan Altensen
- azure: exclude some documentation paths in f8788eb7f3
Joe Watkins
- implement tsrm_is_shutdown API in 68485f8ab4
- add ini config details to php-config in 2d5f277a2d
- implement support for workers in cli-server on platforms supporting fork in 82effb3fc7
- simple ignore arguments in exceptions implementation in 0819e6dc9b
- improvements to cli server in 30019f47a5
Joshua Westerheide
- Fix #78183: finfo_file shows wrong mime-type for .tga file in 855bbc88c9
- Add tests from fix #78183 from PHP-7.2 in 6cdeedb8de
Nikita Popov
- run-tests: Don't die unnecessarily in 74a7d00846
- Fix stream leak in phar cache_list in c7962207d7
- Fix TimeZone leak in intl MessageFormat in 77f7ec5152
- Fix UConverter leak in b53bb3c15b
- Fix SSL_CTX leak in ftp extension in 6fcae63f61
- Fix leak on sqlite3 open error in 8277acefbd
- Fix CURLINFO_COOKIELIST leak in 8757f30cc7
- Fix out of bounds write in phpdbg in 42b22d3a94
- FFI: Perform bitfield operations byte-wise in 0f3ca15bb7
- Fix fpm limit_extensions leak in 698dd32b03
- Use
ldap_destroy
instead ofldap_unbind_ext
in 80958d0f90 - Fix xml doc leak in soap in 788a68900d
- Remove
stream_socket_sendto.phpt
in 7d28a24c66 - Fix use-after-free in stream freeing during shutdown in 6bebe833a2
- Fix persistent connection leak in mysqli in 2f0f895284
- Add tracked allocator mode in cfeda978df
- Fix persistent XML memory leaks in SOAP in 78375aa52f
- Don't use zmm for PHPDBG_G(exec) in 2149ed7072
- Fix phpdbg shutdown order in c3132781ec
- Fix opcache blacklist leak in 40d6147dd0
- Remove
posix_getlogin_basic.phpt
test in 08027e85fa - Fix custom heap free in 70fa4715a4
- run-tests: Don't pass
--INI--
settings to --SKIPIF
-- in b195412bf3 - Fix init_file leak in phpdbg in 8c4d199851
- Free ZTS lock in opcache in a78adce5cb
- Fix mysqlnd memory leak in f365d0e00e
- Add support for
proc_open()
with a command array in 8be051015e - Add tracked arena allocator in 7632a411e3
- Fix out-of-bounds read in array compilation in 9f81c56e42
- Update error message in libmysql test in c0bf3bc50c
- Avoid reliance on arena details on phpdbg oplog in 50cce5eb4f
- Fix out of bounds read in sccp in ca6f41aa5a
- Set up asan+ubsan scheduled build on azure in 54dd762f59
- Fix arginfo leak in disable_functions in 3698303540
- Mark ifunc resolver functions as unused in 88d52ae7aa
- Remove
phpdbg_xml_asprintf()
in cf29c0f212 - Disable ifunc resolvers if memory sanitizer is used in 2c8819b89c
- Use
strcmp()
in phpdbg_eol_global_update in 45ab57339e - Disable RTLD_DEEPBIND under memory sanitizer in 736172d23d
- Add some tolerance to
time_sleep_until()
test in 5c0a9a4096 - Msan: Unpoison
getrandom()
syscall result in 7e6db70064 - Don't use fast_memcpy under msan in c8af6a7fa7
- Msan: Unpoison buffer written by file cache in da06f7f383
- Fix unused variable warnings when mbregex disabled in 7defd5f69c
- Run file_put_contents_variantion8 in separate directory in 83ee7b4c07
- Clarify #if indentation in time limit implemementation in 01e1e1991d
- Initialize last_line in phpdbg globals in af3e2d3186
- Skip perf-sensitive fileinfo tests in 7acc828abf
- Generate less code in compile time binary op test in 59522c5a85
- Setup msan on azure in 0dfca74be2
- Remove unused (module|request)_shutdown_for_exec in b88ef3dc58
- Update proto comment for
proc_open
in 1e06a8ef95 - Fix clang build in 03846afdf7
- Backport test fix in 32c68428a9
- Fixed bug #78230 in 4892bbc167
- Fixed bug #78239 in 2bf880db2c
- Skip
pcntl_sigwaitinfo()
test under asan/msan in aff0b77d15 - Fix file conflict in fgets test in 6dd4cccef8
- Remove
curl_basic_017.phpt
in 959c84b249 - Fixed bug #78231 in 0e48e35e04
- Avoid use of random ports in some socket tests in d6d9024cb8
- Improve unlinked class diagnostics during preloading in f857648270
- Set PROPERTY_TYPES_RESOLVED flag for internal classes in 1fea887cc0
- Preloading: Prevent autoloading while resolving constants in df243f19be
- Preloading: Also handle trait methods outside main script in 4a2646cf45
- Preloading: Relax known type restrictions in b250f89b92
- Assert that HT entries using add_new APIs are really new in 6a9127c100
- Compact literals: Don't insert unmergeable keys in a0e7624059
- Preloading: Don't move conditional functions to back to scripts in d3c4841b18
- Fix wrong size calculation related to function name in ea43624972
- Add test in 24ecfcc833
- Optimize integer in_array with strict=true in ea86a9209c
- Fix inference for compound object op on dim in c353f17d42
- Make sure all cases of fetch_dim_w adjustment are handled in 73fd2da754
- Backport fe_reset_rw case in 5846e85283
- Mention that
zend_parse_parameters
should not be tested in 7514b5d91c - Make busy wait busier in 392398bfe6
- Add
ReflectionReference::getRefcount()
in 428cfdd181
Peter Kokot
- Set Computer English language for credits sorting in 537844cb1d
- Remove HAVE_STRTOD and strtod check in cc4134c04e
- Remove unused HAVE_DATE and HAVE_SPL symbols in 6ef2f04a75
- Fix posix_errno test without PCNTL dep in a29bf46b68
- Fix concurrent testing of bug 61964 in 4ff44a9161
- Remove warnings for bison and re2c checks in 798fed3b0d
- Clean headers checks in 2079b09854
- Sync HAVE_HASH, HAVE_HASH_EXT, PHAR_HASH_OK symbols in 033cafacbd
- Remove HAVE_STRCOLL check in 638c21765c
- Remove HAVE_ERRNO_H from libgd in a014e50513
- Clean up files after the tests are run in 57424f272c
- Remove HAVE_DEV_ARANDOM in 1925102fe4
- Remove HAVE_LIMITS_H check in 6c1c66befe
- Fix missing file and remove SKIP section in 778f08ff06
- Fix phar tests with hash extension in 839ff378bc
- Remove unused build specific symbols in 8bc59a62c4
- Sync functions checks in 9a3c8e51e3
- Fix bug #78197: PCRE2 version check in 624488b5e8
- Remove unused check for struct cmsghdr in c70d9cdb11
- Remove not needed checks for functions in e558ee7999
- Remove TSRM_BASIC_CHECKS in 30c1c53164
- Remove check for ApplicationServices/ApplicationServices.h in 534351c014
- Remove some old BeOS artefacts in b1ef50091d
- Remove
PHP_CHECK_CONFIGURE_OPTIONS
in 16df718251 - Remove libtool and automake from azure installs in 6f558c9508
- Enable option checking on CI in a45192e183
- Remove PTHREADS_ASSIGN_VARS in 1c9e8e8f6a
- Move footer to the end of configure output in 539b577827
- Remove some more Apache 1 left overs in 49cc2a63b3
- Remove
PHP_DEBUG_MACRO
in 3bde4838f4 - Remove some unused variables in 5ba69ab3ad
- Simplify
PHP_CHECK_PDO_INCLUDES
calls in a39ea91753 - Update libmagic patch in f002761e08
- Remove C89 checks for
signal.h
and strerror in 550c2aa89b - Refactor genif.sh in 900de30b0f
- Remove APACHE symbol in 4b864c2ebb
- Catch up with current procedures in d094ca83df
Pieter Hordijk
- Removed mysqlnd stats from phpinfo page in 6ab04a6eef
Robert Kopack
- Implement SQLite extended result code functionality in b546ae986a
Sara Golemon
- Bugfix #78208 Needs rehash with an unknown algo should always return true in 27f1f3ed1a
- Provide argon2i(d) password hashing from sodium when needed in 0ba1db7a4a
Scott Dutton
- Deprecate passing invalid character to base_convert etc in d90cdbd9df
Sebastian Pop
- Fix compilation errors when building against libmysql in 70ef87539d
Sjon Hortensius
- PDO: support username & password specified in DSN in a7881df281
Stanislav Malyshev
- Simplify expression and remove the possibility of div by 0 in 57e7c3aac1
sunnyeo
- Fix bugs in AST printer in f7327b6244
Vincent
- Fix bug #78192 PDO SQLite SegFault when reuse statement after schema has changed in 05c00a832c