PHP 7.4 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 7.4.0RC3 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.0RC3 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-7.4.0RC3
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.0RC3-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:7.4.0RC3-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.0RC3-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:7.4.0RC3-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.0RC3-fpm
Commit List
Christoph M. Becker
- Fix #78543:
is_callable()
on FFI\CData throws Exception in 9dfbcd7248 - Fix #78579:
mb_decode_numericentity
: args number inconsistency in 398b308316 - Fix test to be skipped if dom is not available in 697945aa89
- Fix NEWS entry in ed099ab186
- Fix #78559: Heap buffer overflow in
mb_eregi
in 8f949eba80 - Update NEWS in 7530938670
- Fix
skipif
.inc in 115f6effec - Fix test regarding
Reflection::export()
deprecation in 3204d7e0d1 - Fix build for libzip < 0.11.2 in f6bfbe9553
- Fix #78609:
mb_check_encoding()
no longer supports stringable objects in 45db6fa567 - Skip tests for old versions instead of marking them
XFAIL
in 3d89f92784 - Update regarding changed OpenSSL default config path in 59ac81f81e
- Fix AppVeyor setup wrt. changed OpenSSL default config path in d596fda993
CJDennis
- Fix typo in e3255a4f49
Derick Rethans
- Update versions for PHP 7.4.0RC3 in eb58425c55
Dmitry Stogov
- Don't buid static libaraies when only DSO required in f633c34757
- Fixed GOTO VM in 23db95e3e5
Fabien Villepinte
- Fix
SKIPIF
inext/mysqli
in 37d27e666a - Fix wrong function name in
SKIPIF
in 8c7b8d75db - Fix borked SKIPIFs in 0aa3acc6c4
Gabriel Caruso
- Use nproc instead of hardcoded number in 3205ebefa3
Gerard Roche
- Fix GCOV not working for PHP-7.4 and master branches in 9cc1bf5628
Jinesh Patel
- Fix length of key passed to
zend_hash_str_find_ptr
in 0d6c2448a7 - Fix hash key length in
umsg_parse_format()
in d2331cc3f2
Nikita Popov
- Backport MAP_JIT fixes from PCRE2 10.33 in 03efeda538
- Fixed bug #78272 in e11ed02870
- Remove unstable test output in 85b001974a
- Fix exif leak on duplicate copyright tags in 3e139a4653
- Fix iterable return type optimization in 003c13d7bc
- Clean up JSON parser in 3fd68fd827
- Fix out-of-bounds read in exif tag reading in 0fa13028cb
- Fix multiple leaks in
exif_read_data()
in 0701835c01 - Fix leak of temporary buffer during exif tag reading in f989a4cd44
- Fix ubsan violation in parse_iv2 in e65adc9c19
- Fix signed integer overflow in SplObjectStorage unserialization in 8509970e6a
- Remove commented code in 366f97f070
- Commit regenerated
var_unserializer.c
in 1a184f030a - Skip test on 32-bit in 087051c9a5
- Skip test on 32-bit in bc4c4c658c
- Fix
skipif
condition in 3ddb63dce1 - Fixed bug #78589 in 73115ef873
- Remove
xfail
onbug70219.phpt
in b100d51ba2 - Increase serialize_lock while decoding session in b8ef7c35ab
- Fix null-pointer deref in if stmt printing in 8a9df88597
- Fix memory leak with ** on array operands in ab938d7bbc
- Handle resources used as array keys consistently in a6c9c7c2b8
- Fix file clash in
rename_variation.phpt
in b154c12cc9 - Enable ubsan stack trace printing on community job in a020d3bbea
XFAIL
sapi/fpm/tests/log-bwd-multiple-msgs-stdout-stderr.phpt
in f2826954ac- Don't throw warnings during heredoc scan-ahead in 7df50ef147
- Add max_depth option to
unserialize()
in 1806ce9cb0 - Fixed bug #78604 in 19e7e4b197
- Fixed bug #78612 in 6fcde56b03
Remi Collet
- Fixed bug #78574 (broken shared build) in dc40332bb2
Sergei Turchanov
- Fix #78413: php-fpm request_terminate_timeout does not take effect after fastcgi_finish_request in e546d721e8
Stephen Reay
- Allow lookup of distro-packaged QDBM headers on Debian in 7a81505f6f
Tyson Andre
- Reduce memory used by
token_get_all()
in 7e0f7b7677