PHP 7.4 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 7.4.25 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.25 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-7.4.25
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
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.
php-7.4.25-x64NTS.zip (24.86 MiB)
php-7.4.25-x86NTS.zip (23.15 MiB)
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.
php-7.4.25-x64TS.zip (24.95 MiB)
php-7.4.25-x86TS.zip (23.12 MiB)
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.25-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:7.4.25-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.25-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:7.4.25-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.25-fpm
ChangeLog
DOM
- Fixed bug #81433 (
DOMElement::setIdAttribute()
called twice may remove ID).
FFI
- Fixed bug #79576 ("TYPE *" shows unhelpful message when type is not defined).
Fileinfo
- Fixed bug #78987 (High memory usage during encoding detection).
Filter
- Fixed bug #61700 (FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE failing).
FPM
- Fixed bug #81026 (PHP-FPM oob R/W in root process leading to privilege escalation) (CVE-2021-21703).
SPL
- Fixed bug #80663 (Recursive
SplFixedArray::setSize()
may cause double-free).
Streams
- Fixed bug #81475 (
stream_isatty
emits warning with attached stream wrapper).
XML
- Fixed bug #70962 (XML_OPTION_SKIP_WHITE strips embedded whitespace).
Zip
Commit List
Aliaksandr Bystry
- Fix #70962: XML_OPTION_SKIP_WHITE strips embedded whitespace in a9661a5293
Anatol Belski
- fileinfo: Fixed bug #78987 High memory usage during encoding detection in fa96c7e000
- fileinfo: Adjust value in test in 0208374ad4
- fileinfo: Capture more sizes for test as delivered by AppVeyor in e56435c86d
- fileinfo: Capture more sizes for test as delivered by travis-ci in 6e0acece68
- fileinfo: Fix test value for s390x on travis-ci in 8f75ab0dfc
- NEWS: Add note for bug #78987 in 49c9fbbfe2
Christoph M. Becker
- Fix #81424: PCRE2 10.35 JIT performance regression in a2471383fe
- Fix OOB read due to
timezone_open()
with 5 digit offset in fac3fbcb07 - Fix #61700: FILTER_FLAG_IPV6/FILTER_FLAG_NO_PRIV|RES_RANGE failing in 288c25f7d1
- Fix #81420:
ZipArchive::extractTo
extracts outside of destination in df2ceac25a - 7.3.32 is next in f2f40b1cf7
- Fix #80663: Recursive
SplFixedArray::setSize()
may cause double-free in 2d6684091f - Fix #81475:
stream_isatty
emits warning with attached stream wrapper in 23e13e2c8f - Fix #81490:
ZipArchive::extractTo()
may leak memory in 4d44271415 - Fix #77978: Dirname ending in colon unzips to wrong dir in e0c0de003b
- Revert "Fix #81424: PCRE2 10.35 JIT performance regression" in a19f655b84
Derick Rethans
- The PHP 7.4 branch is for PHP 7.4.25 now in 95a943e2f0
- Update versions for PHP 7.4.25 in eaf01d85dc
Dmitry Stogov
- Fixed bug #79576 ("TYPE *" shows unhelpful message when type is not defined) in 0badc7de96
Jakub Zelenka
- Add FPM prod idle timeout test in 08f52b1643
- Add FPM prod idle timeout test with 6s sleep in edfb347019
- Add the actual test for FPM prod idle timeout test with 6s sleep in 66a655fdf4
- Fix bug #81026 (PHP-FPM oob R/W in root process leading to priv escalation) in 81bf9b1a9f
Michael Voříšek
- Fix gdAlphaMax limit typo in 2c3dfe5160
Nikita Popov
- Fix persistent smart_str allocation in af8fccee9c
- Fix persistent smart_str allocation in 549cb4406e
- Revert "Add FPM prod idle timeout test" in 69514e6ffb
- Disable failing FPM test in 4c01bd2ade
Stanislav Malyshev
- Prepare for 7.4.25 release in 944118bfe3
Tyson Andre
Viktor
- Fix #81433:
DOMElement::setIdAttribute()
called twice may remove ID in 424c265478