PHP 7.4 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 7.4.2 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.2
./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.2-cli-alpine
docker pull php:7.4.2-cli
docker pull php:7.4.2-fpm-alpine
docker pull php:7.4.2-apache
docker pull php:7.4.2-fpm
ChangeLog
Core
- Preloading support on Windows has been disabled.
- Fixed bug #79022 (class_exists returns True for classes that are not ready to be used).
- Fixed bug #78929 (plus signs in cookie values are converted to spaces).
- Fixed bug #78973 (Destructor during CV freeing causes segfault if opline never saved).
- Fixed bug #78776 (Abstract method implementation from trait does not check "static").
- Fixed bug #78999 (Cycle leak when using function result as temporary).
- Fixed bug #79008 (General performance regression with PHP 7.4 on Windows).
- Fixed bug #79002 (Serializing uninitialized typed properties with __sleep makes unserialize throw).
CURL
- Fixed bug #79033 (Curl timeout error with specific url and post).
- Fixed bug #79063 (curl openssl does not respect PKG_CONFIG_PATH).
Date
- Fixed bug #79015 (undefined-behavior in
php_date.c
).
DBA
- Fixed bug #78808 ([LMDB] MDB_MAP_FULL: Environment mapsize limit reached).
Exif
- Fixed bug #79046 (NaN to int cast undefined behavior in exif).
Fileinfo
- Fixed bug #74170 (locale information change after mime_content_type).
GD
- Fixed bug #79067 (gdTransformAffineCopy() may use unitialized values).
- Fixed bug #79068 (gdTransformAffineCopy() changes interpolation method).
Libxml
- Fixed bug #79029 (Use After Free's in XMLReader / XMLWriter).
OPcache
- Fixed bug #78961 (erroneous optimization of re-assigned $GLOBALS).
- Fixed bug #78950 (Preloading trait method with static variables).
- Fixed bug #78903 (Conflict in RTD key for closures results in crash).
- Fixed bug #78986 (Opcache segfaults when inheriting ctor from immutable into mutable class).
- Fixed bug #79040 (Warning Opcode handlers are unusable due to ASLR).
- Fixed bug #79055 (Typed property become unknown with OPcache file cache).
Pcntl
- Fixed bug #78402 (Converting null to string in error message is bad DX).
PDO_PgSQL
- Fixed bug #78983 (pdo_pgsql config.w32 cannot find
libpq-fe.h
). - Fixed bug #78980 (pgsqlGetNotify() overlooks dead connection).
- Fixed bug #78982 (pdo_pgsql returns dead persistent connection).
Session
- Fixed bug #79031 (Session unserialization problem).
Shmop
- Fixed bug #78538 (shmop memory leak).
Sqlite3
- Fixed bug #79056 (sqlite does not respect PKG_CONFIG_PATH during compilation).
Spl
- Fixed bug #78976 (
SplFileObject::fputcsv
returns -1 on failure).
Standard
Commit List
Adrian Verde
- Typo fix in php.ini-production in 2bf38aff79
Christoph M. Becker
- uint/ulong removal may affect other platforms as well in 86aac3eed2
- Fix #78943:
mail()
may release string with refcount==1 twice in 518a160b65 - Fix #78863: DirectoryIterator class silently truncates after a null byte in a5a15965da
- Fix #78862:
link()
silently truncates after a null byte on Windows in 0e6c0654ed - Fix #78878: Buffer underflow in bc_shift_addsub in eb23c60087
- Fix #78976:
SplFileObject::fputcsv
returns -1 on failure in 4cd6d384bd - Update CONTRIBUTING.md in 250416ccb1
- More updates to CONTRIBUTING.md in 9458f7e2d8
- Fix #79008: General performance regression with PHP 7.4 on Windows in 6ec4056928
- Fix test case in 2704ee6844
- Skip test for clang builds in 58cc66e175
- Fix #79033: Curl timeout error with specific url and post in c47b18a222
- Add missing
skipif
clause in 1aa419dcdc - Fix #79040: Warning Opcode handlers are unusable due to ASLR in 0cecf83b26
- Avoid undefined behavior in 98df5c97f4
- Remove superfluous compiler option in 4f0e5c8dd9
- Add test case for bug #78883 in 09e76cbe6d
- Add test case for bug #78883 in c39b45df72
- Fix #79015: undefined-behavior in
php_date.c
in b48f2625b5 - Try to fix intermittently failing test case in fc6e83e01a
- Fix #78538: shmop memory leak in 18172303f4
- Fix #78808: [LMDB] MDB_MAP_FULL: Environment mapsize limit reached in c05a069adf
- Fix #79067: gdTransformAffineCopy() may use unitialized values in 2c5860517c
- Fix #79068: gdTransformAffineCopy() changes interpolation method in 4bec59f175
- Fix #54298: Using empty additional_headers adding extraneous CRLF in ae2150692a
- Revert "Extend CURLFile to support streams" in 06e78cad83
Derick Rethans
- PHP-7.4 is now 7.4.2-dev in 2badeb511b
- Fixed release line in NEWS in c497becad4
- Remove RC1 header in b5efe15d58
- Update NEWS in 56de1e6c53
- Update versions for PHP 7.4.2 in 264ef4f163
Dmitry Stogov
- Fix error message in 518a8f89c1
- Fixed bug #78937 (Preloading unlinkable anonymous class can segfault) in 20ef51db22
- Addirional fix for bug #78918 in 3280209c03
- Fixed bug #78961 (erroneous optimization of re-assigned $GLOBALS) in 6ef7e53c1b
- Fixed memory leaks in 0927af3d8d
- Fixed memory leak in abf05181b9
- Property names of internal classes from temporary extensins, loaded by dl(), may be emalloc-ed strings in d89cd0bb22
- Fixed bug #78999 (Cycle leak when using function result as temporary) in eb846939b1
Fabien Villepinte
- Add CONFLICTS tag in 203308f6c3
Kachalin Alexey
- Fix #78929: plus signs in cookie values are converted to spaces in 79376ab209
Nikita Popov
- Free RSA public key in mysqlnd sha256 auth in b6a59cee47
- Fixed bug #78903: Conflict in RTD key for closures results in crash in b55033fa18
- Revert "Fixed bug #78903: Conflict in RTD key for closures results in crash" in 502cd7b1f1
- Fix handling of non-final loop var free in sccp in 2d03b638dc
- Fixed bug #78950: Preloading trait method with static variables in be89a5c7f1
- Introduce extra counter to avoid RTD key collisions in 0f2cdbf214
- Fixed bug #78921 in 621598eaa8
- Fixed bug #78973 in 11b041d3c6
- Remove DateTime class registration test in 8e12f04b5e
- Set opcache.optimization_level=0 in test in 77e131da91
- Avoid float to int cast UB in exif in dd997a40d0
- Fix resetting of internal_encoding and friends in fcdc0a6db0
- Free buffer in
php_verror
even if it is empty in e45b613950 - Fix const/cv freeing on failed reference assignment in 0301ab70b3
- Fix freeing of dynamic call name in 189f625e2b
- Fix use-after-free when trying to write to closure property in b965f158ac
- Rethrow generator exception even without active stack frame in 897d99c7a4
- Fixed bug #78986 in bd4fce4f6f
- Fixed bug #78776 in 4a61d842e7
- Fix leak in assign_ref with function in df08d6bffe
- Add destructor annotations in ini parser in 0f078f6e78
- Avoid signed integer overflow in string offset check in 527ad1d80c
- Fix early free of assign_obj op_data in 885b3451f4
- Fixed bug #79000 in 10eb0b3110
- Try to make
proc_open_bug69900.phpt
more robust in d5c55f81ec - Fix leak when generator closed during yield in finally in b829ea5f74
- Make GeomFromText tests compatible with MySQL 8 in f97806726f
- Don't test the RENAME DATABASE query in c4cbdfa99c
- Don't check TIMESTAMP NOT NULL in fetch_field_flags test in 6572d9149d
- Skip
bug77956.phpt
if local_infile disabled on server in 23d4659635 - Specify explicit row order in PDO MySQL test in 248c783e7d
- Don't use PASSWORD() function in test in b0efd18f78
- Support auth switch request during caching sha2 auth in 6225137b4a
- Fix unix socket check during caching_sha2_password in 03ee36d1c5
- Add support for caching_sha2_password in change user authentication in e7e1254f3e
- Handle error response during caching_sha2_password auth in 813d4a00b4
- Handle empty password fast path in caching_sha2_password in 32cd373dfd
- Revert "Increase serialize_lock while decoding session" in ed3811e781
- Add test for bug #79031 in fcaf7cbd64
- Fixed bug #79046 in d1537e506e
- Properly propagate url_stat exceptions during include in f77747b06c
- Make url_stats in resolve_path quiet in 003be875e4
- Also propagate include exceptions in opcache in 22e9f9fe4d
- Extract
php_var_serialize_nested_data()
function in 701e8c66d1 - Deref names returned by __sleep() in de0ca4734e
- Populate hashtable of __sleep() properties in 90fea67546
- Update ZCSG(map_ptr_last) only if for_shm in e576d342bb
- Fix file cache run_time_cache unserialization in 36d5fbbd6b
- Extract functions for file cache type serialization in 48622970fb
- Fixed bug #79055 in 8abb2ced39
- Fixed bug #79056 in 1dcdcd79ba
- Fixed bug #71876 in 1f9e93687c
- Add test for bug #73816 in 6f63e05320
- Remove unnecessary strncpy in zip in 3e5675d730
- Slightly increase tolerance in
time_sleep_until()
test in 7f02b5fc47 - Clean up curl openssl check in 2d29904f25
- Fix bug #79063: Curl openssl does not respect PKG_CONFIG_PATH in b59f760472
- Don't link against openssl 1.1 in curl in 68f6ab7113
- Throw Error when referencing uninit typed prop in __sleep in 846b647953
- Remove support for preloading on Windows in 59c3ddab13
Remi Collet
- fix release date in 864f5ef12f
- fix release date in bacfae8baf
- fix release date in 76eb30ded3
SATO Kentaro
- Fix #78983: pdo_pgsql config.w32 cannot find
libpq-fe.h
in 3e35b08980 - Fix #78402:
pcntl_signal()
misleading error message in cbb0efaeeb - Fix #78980: pgsqlGetNotify() overlooks dead connection in 7e39e6934d
- Fix #78982: pdo_pgsql returns dead persistent connection in 37d11d123e
Sergei Turchanov
- Fix #74170: locale information change after mime_content_type in c62cd9a43a
Stanislav Malyshev
- Fix test in b771a18133
- Fixed bug #78910 in d348cfb96f
- Fix build - no model field anymore in b74a300edf
- Fix bug #78793 in c14eb8de97
- Fix test in 6d5cddabaf
- Test fixes in d82a2f6c21
- Fix test in a62154564d
Xinchen Hui
- Fixed bug #79022 (class_exists returns True for classes that are not ready to be used) in 153c9cc346
- Similar problem (#79022) also exists in Interfaces in f09b958e90
- Partial fix for bug #79029 in b5e0043796
- Fixed bug #79029 (Use After Free's in XMLReader / XMLWriter) in d8ad2f4695
- Revert "Fixed bug #79029 (Use After Free's in XMLReader / XMLWriter)" in 4c6e170c57
- Fixed bug #79029 (Use After Free's in XMLReader / XMLWriter) in e36daa6927
- Fixed bug #79029 (Use After Free's in XMLReader / XMLWriter) in 27bb3289ac