PHP 7.4 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 7.4.0alpha2 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.0alpha2
./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.0alpha2-cli-alpine
docker pull php:7.4.0alpha2-cli
docker pull php:7.4.0alpha2-fpm-alpine
docker pull php:7.4.0alpha2-apache
docker pull php:7.4.0alpha2-fpm
Commit List
Anatol Belski
- Set correct default version in 5a83bfb37d
Andrey Hristov
- Fix version comparison in 82021ad9df
- Add explicit cast to uint32_t in 102c64e827
Asher Baker
- Fix #78173: XML-RPC mutates immutable objects during encoding in d54220bc79
BohwaZ
- Implement SQLite3 backup API in ce22ccc77b
Christoph M. Becker
- Add BMP support to PHP info in 3c5bb06536
- Prevent parallel test conflict in 11c3215251
- Improve
create_verify_dir()
diagnostics in e58e2fd0d4 - Update NEWS in 740d9ecdee
- Turn system_id into a true global in 04a6aac59b
- Document removal of uint and ulong typedefs in 571c6bc3f3
- Rename test file to reflect the appropriate ticket number in ecae9100dc
- Update NEWS in a0f370e78a
- Fix #78189: file cache strips last character of uname hash in fcd6f2de60
- Support TGA reading in 81fd113506
- Properly shut down font cache mutex in eec5d2a25f
- Split test case in 94df6dc3fd
Côme Chilliet
- Avoid converting zval when not needed in c219d8d5c2
- Some more string conversion handling, fixing bug #77958 in 5d2fe48785
Derick Rethans
- Update CREDITS for PHP 7.4.0alpha1 in ec57ba5edd
- Fixed bug #67348: Reading $dbc->stat modifies $dbc->affected_rows in 579562176b
- Update versions for PHP 7.4.0alpha2 in 3c3775fc38
Dmitry Stogov
- Attempt to fix edge conditions that may cause bug #78106 in 91a6cdbff5
- More edge case fixes that may cause bug #78106 in 96a12578c1
- Backport 91a6cdbf in 40f463b560
- Backport 96a12578 in 28808ca96d
- Fixed memory leaks in
ext/ffi/tests/100.phpt
on Mac OSX in 1e0b0467b6 - Avoid uninitilized field access in eda916cc98
- Remove
XFAIL
mark in 938d2359ae - Fixed bug #78175 (Preloading segfaults at preload time and at runtime) in 148eb20226
- Fixed bug #78185 (File cache no longer works) in cd6a6e4cf2
- Cleanup in e1e8e670df
- Fixed bug 78175 (Preloading must store default values of static variables and properties) in 0f29fb5cd8
- Keep lowercased parent class name as second argument of DECLARE_CLASS to avoid extra work at run-time in 759f4ecd8b
Erik Lundin
- Add syslog.filter=raw in 9f0515c40c
Freddie Leeman
- Simplify pm.start_servers calculation in docs in 482784284a
George Peter Banyard
- Remove useless param in
php_snmp_error()
in 6bd66f77fc - Remove unnecessary short_open_tags use in tokenizer test in b2d6d29632
Joe Watkins
- we are not running database tests on macos, there is no need to install mysql or start pg in a7f8a2b731
- we are not running database tests on macos, there is no need to install mysql or start pg in 3b6d36435f
- Revert "micro-optimization" in 175c7bf6fe
- test for bug #78151 in b2b0e52466
- fix mac tests on azure in f16b012116
- disable this test temporarily in 8f4e24eeef
- fix flaky socket tests in afdf7ed5ba
- This test is flaky, and some of it doesn't make sense in 3852a35fdb
- gettimeofday cannot be used to reliably implement high precision process synchronization in 7e1972796b
- this mtime comparison makes assumptions that cannot always hold true in 2283884475
- bugs in fpm logging #4273 #4007 in 116d42d990
- fix flaky socket test in 68785c00ef
- Resolve discrepencies between second value yielded by gettimeofday and time, fixes #69044 in 65067dff01
- Separate check for process creation and ability to accept connections in d6480fa231
- refactor a little more to add some more useful error messages and raise the limits on waiting for slow machines in eda5d8afcf
- export
php_time
in 599b94ff14 - fix setcookie Max-Age to use
php_time
in 31a1c1e67c
Nikita Popov
- Guard functions by SO_PASSCRED in 2134cc25d2
- Fix incorrect printf modifiers in 5be772a19c
- Remove unused
php_mbX_int_to_char()
functions in fdfb390f07 - Fix incorrect enum value uses in xmlrpc in 9fa552f393
- Fix warnings in
mysqlnd_alloc.c
in 3e4b9659d3 - Enable -Werror on m32 build in 4d65d53805
- Fix mysqlnd printf modifiers in e1e275eefd
- Remove MYSQLND_LLU_SPEC/MYSQLND_LL_SPEC in 52d80ccd24
- Fix unused value warnings in
snprintf.c
in be36d92294 - Try to control
ZEND_MM_ALIGNED_SIZE
type in 93c728b77c - Fix unused variables in
fpm_env.c
in 16f79129c7 - Mark some operand fetching funs as ATTRIBUTE_UNUSED in 080e2316cf
- Remove always true condition in 65ff4dddba
- Use memset instead of brace initialization in cdefeb715b
- Fix ifdef position in cc89d26096
- Make ATTRIBUTE_UNUSED more portable in 8f63e7e324
- Fix unsigned char mismatch in 6fcb469991
- Don't warn if libcurl SSL library not detected in bc8fece0cf
- Fix
ext/exif/tests/bug76557.phpt
for 32-bit builds in 7b8299893e - Enable -Werror on macos builds in da56e77357
- Don't throw warning if testing multiple ports in 4603ce731b
- Fixed bug #78151 in b64107531b
- Fixed bug #78154 in cac6b04113
- Add test for bug #78106 in f8a68fd935
- Fixed bug #78106 in f1a8138055
- Condition some azure jobs on schedule trigger in ce2b36bc48
- Revert "
ext/standard
: Use PKG_CHECK_MODULES to detect the Argon2 library" in 19e2101dfa - Fix
skipif
syntax errors in 646b64b119 - Fix some leaks in ldap in 98457b6d60
- Fix SNMP build warnings in e6aec81470
- Make
curl_multi_info_read.phpt
more robust in 8a5ce6f16f - Remove file/005_variation.phpt in 7410155dab
- Use uint64_t for time_sleep_until calculations in 4befe320e3
- Enable intl on macos in 36d94f73bb
- Make
ext/curl/tests/bug48203_multi.phpt
more robust in 6381b1ee82 - Add debug output to
posix_getlogin()
test in d584f92195 - Accept null for preg_quote delimiter argument in 03db04c3ab
- Fix file conflicts in SplFileObject fputcsv tests in 4e9a65447f
- Fix file clash in fgetcsv test in d924b426c9
- Fix shift UB in constants in 3d4298697b
- Avoid overflow UB in is_numeric_string in 82a34e71c5
- Fix signed shift UB in ed2a242317
- Fix memcpy null arg UB in 317dfab81b
- Fix
_php_math_round
UB in 0c0659dc50 - Use unsigned chars in
php_uuencode()
in bee7973e52 - Use unsigned char in _crypt_extended_r in 4b5e824aae
- Avoid more UB in
round()
in 8740533ddf - Avoid memcpy UB in streams in f26e77b05f
- Fix overflow UB in
range()
in 4ae87f4bf9 - Fix incorrect shift in mysqlnd_wireprotocol in 22765160da
- Fix shift UB in
sint4korr()
in f65046b951 - Fix shift UB in
mbfilter_utf32.c
in ae2bc6297e - Fix memcpy null UB in phar in 7bf6326259
- Phar: Avoid negative zip dates in b1196e2128
- Fix shift UB in php_ifd_get32s in 1c018af682
- Fix shift UB in
gd_io.c
in ea97fc9c1f - Fix uninitialized variable in c10cb47b5f
- Fix buffer underflow in
gd_gif_in.c
in 2a9fc31021 - imageloadfont: Perform overflow check before calculation in 88b603768f
- Fix shift UB in
hash_snefru
in 555d68be10 - Suppress overflow UB in
zend_strtod
in b8cba88904 - Fixed bug #78182 in 268b5fec8e
- Suppress shift UB in
gd_itofx()
in 9b3b07cd26 - Remove copy argument from
php_glob_stream_get_path
/pattern in 7cbd4f31c4 - Fix various instances of memcpy null ub in 608097a901
- Avoid signed shift ub in
php_sdl
in 8743d5e99a - Avoid memset/memcpy null ub in block pass in ccfe6c862a
- Backport "Avoid UB in overflow checks" in 3a97b8b4f9
- Avoid overflow in mul range calculation in 117c7b3f65
imagecolorallocate()
: Check that RGB components are in-range in 4488475a3e- Fix maybe uninit warning in e162a1c02e
- Change indexing scheme for symtable_cache in eaafb69eea
- Disable float division by zero sanitizer for div_function in a59e0cfce5
- Bail out earlier in
zend_memnrstr
in e4455c32ed - Avoid address calculation overflow in e8ae19223c
- In
php_needle_char()
use well-defined double->integer cast in d4de127dd8 - FFI: Use signed arithmetic for pointer offset in f127d77eef
- SOAP: Avoid indexing into null pointer in 27d3373496
- Handle gethostbyname misalignment on macos in 26ac6cb6be
- Check for dlsym as well in 6165c23475
- Handle gr_mem misalignment on macos in d80f0ff6c0
- Handle misaligned ifreq on macos in dd6d471834
- Remove leftover check in 59974000eb
- Avoid ub in shift overflow check in 8227e0f747
- Make
ZEND_SEND_*
flags unsigned in a84771573d - Fix leak in bcpowmod in f781c8f110
- Fix memory leaks in browscap parsing in 1de7c4b919
- Free cert in
php_openssl_load_stream_cafile()
in 90cb3743be - Fix CSR leaks in openssl in e0bafc6da4
- Fix X509 leak in
openssl_pkcs7_verify()
in a0da2fb2b7 - Fix netscape spki leak in openssl in dfe6f0c1c6
- Fix d leak in ecc openssl_pkey_new in c939a67866
- Fix PKCS12 leak in openssl in 99f3e0f0ed
- Fix prompt leak in phpdbg in a7bcfee9c9
- Fix stack leak in phpdbg in 152ccfb08d
- Add debugging code to time_sleep_until test in df27bfe58b
- Fix region leak in
mb_ereg_replace
in 46bad1d679 - Don't force USE_ZEND_ALLOC=0 in
run-tests.php
in 3a36e68c49 - Fix EVP_PKEY leak in phar in 31123de0c8
- Avoid confusing gotos in phar_split_cache_list in 43dd1ac570
Niklas Keller
- Fix memory leak in TLS matches_san_list in fea9f93166
Remi Collet
- next is 7.2.21 in feb92adc5c
- move NEWS entry in e59b986fa7
- add test for #78185 in 63f2d88088
- move NEWS entry in c2ee2e4c74
- improve test clean section in b3cfeda3c7
- fix test for Windows and for parallel run in d8202bf917
Rosen Penev
- Fix compilation without deprecated OpenSSL 1.1 APIs in 32e6d08dcd
Theodore Brown
- Implement numeric literal separators in f74109d9a4
twosee
- Turn add_index_zval and add_next_index_zval into inline function in 42cc58ff7b