PHP 7.4.6: Downloads, Changelog, News

Release Information

PHP Version
PHP 7.4
Release Date
Release Type
Bug Fix Release
Release Status
EOL, Use PHP 7.4.33
Branch Status

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.


Source Code

Git Clone
Use Git to clone the 7.4.6 tag from the PHP Git repository.
git clone --depth 1 --branch php-7.4.6
How to compile PHP
PHP can be compiled by setting up the dependencies, building the configure script (./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

Non-Thread Safe Builds
Non-Thread Safe (NTS) builds are single-threaded PHP builds. They can be used on web servers that integrate PHP over FastCGI protocol, such as Nginx, Caddy, and IIS.
Thread-Safe Builds
Thread-Safe (TS) builds are multi-thread PHP builds, often used to integrate PHP as a Server API for multithreaded servers. The most common use case is using PHP as an Apache module.

Docker/Podman Containers

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



  • 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).


  • Fixed bug #78221 (DOMNode::normalize() doesn't remove empty text nodes).


  • Fixed bug #79336 (ext/exif/tests/bug79046.phpt fails on Big endian arch).


  • Fixed bug #79491 (Search for .user.ini extends up to root dir).


  • Fixed bug #79441 (Segfault in mb_chr() if internal encoding is unsupported).


  • Fixed bug #79497 (stream_socket_client() throws an unknown error sometimes with <1s timeout).


  • Upgraded to PCRE2 10.34.


  • Fixed bug #79503 (Memory leak on duplicate metadata).


  • Fixed bug #79528 (Different object of the same xml between 7.4.5 and 7.4.4).


  • Fixed bug #69264 (__debugInfo() ignored while extending SPL classes).
  • Fixed bug #67369 (ArrayObject serialization drops the iterator class).


  • Fixed bug #79468 (SIGSEGV when closing stream handle with a stream filter appended).
  • Fixed bug #79447 (Serializing uninitialized typed properties with __sleep should not throw).

Commit List

Alex Dowad

  • Fix bug #67369 ArrayObject serializatino drops the iterator class in 0d11d37357

Christoph M. Becker

Derick Rethans


Dmitry Stogov

  • zend_timeout() may access EX(opline) in d31ccb5fc8

Gabriel Caruso

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


  • Fix MySQL local infile / attr handling on big endian systems in a1c1736bfb

Joe Cai

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

Nikita Popov

Qianqian Bu

  • Fix incorrect free for last_message in ee21657a6a

Sara Golemon

Stanislav Malyshev

Subscribe to PHP.Watch newsletter for monthly updates

You will receive an email on last Wednesday of every month and on major PHP releases with new articles related to PHP, upcoming changes, new features and what's changing in the language. No marketing emails, no selling of your contacts, no click-tracking, and one-click instant unsubscribe from any email you receive.