PHP 7.4 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 7.4.6 is not recommended. PHP 7.4.33 is the latest version in the series.
Downloads
Source Code
Git Clone
Use Git to clone the 7.4.6 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-7.4.6
How to compile PHP
PHP can be compiled by setting up the dependencies, building the configure script (
Detailed articles on how to compile PHP are available for Ubuntu/Debian based systems and Fedora/RHEL based systems.
./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
PHP CLI
PHP CLI Containers images only include the PHP CLI, and no FPM or Apache modules. The Alpine builds are lightweight, but may introduce incompatibilities due to their musl builds. Albeit their larger size, the Debian-based (without the "-alpine" suffix) images are more complete, and widely used.
Alpine-based: Lightweight, but may introduce incompatibilities due to their musl builds.
docker pull php:7.4.6-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:7.4.6-cli
PHP CLI + Web Server Integration
These container images include PHP CLI, and a web server integration. FPM container images can be integrated with web servers such as Nginx, Caddy, and Apache with Event MPM. The Apache container images include Apache web server, integrating PHP as an Apache module.
Alpine-based: Lightweight, but may introduce incompatibilities due to their musl builds.
docker pull php:7.4.6-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:7.4.6-apache
Debian-based NTS FPM: PHP-FPM, can be integrated with Nginx, Caddy, and other web servers over Fast CGI.
docker pull php:7.4.6-fpm
ChangeLog
Core
- Fixed bug #79536 (
zend_clear_exception
prevent exception's destructor to be called). - Fixed bug #78434 (Generator yields no items after
valid()
call). - Fixed bug #79477 (casting object into array creates references).
- Fixed bug #79514 (Memory leaks while including unexistent file).
DOM
- Fixed bug #78221 (
DOMNode::normalize()
doesn't remove empty text nodes).
EXIF
- Fixed bug #79336 (ext/exif/tests/bug79046.phpt fails on Big endian arch).
FCGI
- Fixed bug #79491 (Search for .user.ini extends up to root dir).
MBString
- Fixed bug #79441 (Segfault in
mb_chr()
if internal encoding is unsupported).
OpenSSL
- Fixed bug #79497 (
stream_socket_client()
throws an unknown error sometimes with <1s timeout).
PCRE
- Upgraded to PCRE2 10.34.
Phar
- Fixed bug #79503 (Memory leak on duplicate metadata).
SimpleXML
- Fixed bug #79528 (Different object of the same xml between 7.4.5 and 7.4.4).
SPL
- Fixed bug #69264 (__debugInfo() ignored while extending SPL classes).
- Fixed bug #67369 (ArrayObject serialization drops the iterator class).
Standard
Commit List
Alex Dowad
- Fix bug #67369 ArrayObject serializatino drops the iterator class in 0d11d37357
Christoph M. Becker
- Enable error diagnostic for
check_default_conf_path.phpt
in 71e1d37938 - Fix #69264: __debugInfo() ignored while extending SPL classes in 22a077b642
- Fix #78221:
DOMNode::normalize()
doesn't remove empty text nodes in efec22b7be - Fix memory leak introduced by fixing bug #78221 in 7e91fcd7f9
- Relax overly strict test expectation in 73a0719f45
- Fix test cases in a1b46fc152
- Add missing CVE in c4cdf1ae12
- Fix #79472:
ext/ffi/tests/040.phpt
TC fails on Big endian arch in 8c5faf7ad1 - Fix #79491: Search for .user.ini extends up to root dir in fa10abd6d7
- Upgrade to PCRE2 10.34 in 225117af71
- Fix #79503: Memory leak on duplicate metadata in ccca2c448d
- Fix #79514: Memory leaks while including unexistent file in 3151676f52
- Fix #79470: PHP incompatible with 3rd party file system on demand in 29968d8f99
- Fix #79065: DOM classes do not expose properties to Reflection in 6bc8f7e5a9
- Bump version in 6998cc5029
Derick Rethans
- The 7.4 branch is now for 7.4.6 in 01634f8410
- Updated to version 2020.1 (2020a) in b962d2e36f
- Empty merge in d6eab50ed0
- Updated to version 2020.1 (2020a) in 3676418568
- Update versions for PHP 7.4.6 in fd6c4b1844
dinosaur
- Fixed bug #79468 in 95eaccd0bb
- Fixed bug #79468 in 13842eda37
Dmitry Stogov
zend_timeout()
may access EX(opline) in d31ccb5fc8
Gabriel Caruso
- Move test to its folder in e88e9afe95
George Peter Banyard
- Fix bug 79441 in 18dc9044f5
- Fix Bug #79448 0 is a valid Unicode codepoint, but
mb_substitute_character
(0) fails in 1333b46d6d - Went to fast and forgot to update tests in 656eac74fa
- Revert "Fix Bug #79448 0 is a valid Unicode codepoint, but
mb_substitute_character
(0) fails" in 6031b08240 - Revert "Went to fast and forgot to update tests" in a0df5f3b54
Graham Campbell
- Add additional preg_match test case in a1a044dcc7
- Add additional preg_match test case in 51fb8398e2
guirish
- Fix MySQL local infile / attr handling on big endian systems in a1c1736bfb
Joe Cai
- Fix #79497: Fix
php_openssl_subtract_timeval()
in 94e09bfe55
Matteo Beccati
- Allow fpm tests to be run with long socket path in af337ae47e
- Skip fpm tests not designed to be run as root in 87375fa2be
Nicolas Grekas
- Fix bug #79447 in 73d02c3b3e
Nikita Popov
- Fix literal compaction collision between string and double in 14b770d407
- Fixed bug #79434 in cf68bc413b
- Fix test in 8ff1991503
- Make mysqli_poll test more deterministic in 5317ea6d57
- Add
php_cli_server_connect()
helper in 1327491224 - Fixed bug #78434 in 823a956855
- Don't leak peername if accept fails in b56fb9019e
- Fixed bug #79477 in 79a36ff7f3
- Fix directory clash in tempnam_variation4 test in 0a2fd0db3c
- Fix bug #79336 in 0b709e3409
- Apply doc root fix for FPM in f62571c121
- Fix file name clash in
touch_variation1.phpt
in 5c40491567 - Don't
rand()
in test in 3e9dac2c6b - Revert "Fix #79065: DOM classes do not expose properties to Reflection" in 75470bc312
Qianqian Bu
- Fix incorrect free for last_message in ee21657a6a
Sara Golemon
- NEWS in 6df761b7ff
Stanislav Malyshev
- Fix bug #79330 - make all execution modes consistent in rejecting \0 in 14fcc81394
- Fix bug #79465 - use unsigneds as indexes in 9d6bf8221b