PHP 7.4.0alpha3: 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.0alpha3 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.0alpha3 tag from the PHP Git repository.
git clone --depth 1 --branch php-7.4.0alpha3
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

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.0alpha3-cli-alpine

Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:7.4.0alpha3-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.0alpha3-fpm-alpine

Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:7.4.0alpha3-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.0alpha3-fpm

Commit List

Alex Scott

  • Fix bug #78138: opcache.validate_permission incorrectly works with PHAR files in a4acff3e21

Anatol Belski

Christoph M. Becker

David Carlier

  • opcache huge pages: Little fix for FreeBSD in 994a01ea43
  • Fix opcache huge page mapping on FreeBSD in 7f1fef9fe0

Derick Rethans

Dmitry Stogov

  • Prevent useless hash lookups in bd0cb99d8c
  • Reduce overhead of delayed early binding in e8f1f70101
  • Set ZEND_ACC_LINKED flag after early binding (for consistency) in 1d534b9da5
  • Cleanup in ccbc121cb1
  • Fixed variance check for abstract constructor during erlay binding in f09d41ffc0
  • Replace previosly checked conditions by ZEND_ASSERT() in 215b5a7db8
  • Remove always true/false conditions, remove dead conde and simplify code in 6288fc19dd
  • Reorder conditions to minimize number of checks on fast path in f7faa62c43
  • Private methods don't have to be duplicated in 36b7021e2c
  • Avoid double checks on early binding in 83b99527df
  • Inline hot path in a58964be82
  • Separate common code abd eliminate useless checks in e7446c1b2d
  • Fixed use-after-free in ba8033feb0
  • Reduce overhead in 143f4e3b5c
  • Fixed GOTO VM in 39a0854307
  • Micro-optimization in f2b6b2eee8
  • Eliminate exception checks in f58c645dcc
  • Use string destructor instead of general zval_ptr_dtor_nogc() in 2d4bb4f44a
  • Separate slow code in cbbd473bdd
  • Fixed build without global register variables in baa883d3fc
  • Optimization of INC/DEC helpers in 56b8b165f8
  • Better optimization in RELEASE build. ZEND_ASSERT(s) prevented optimization in 09041151de
  • Split destructor in e3d35b6434
  • Introduce and use ZEND_VM_INLINE_HANDLER() to avoid ZEND_RETURN exception in 925fd0fe6f
  • Improve zend_binary_assign_op helpers in ef05eab432
  • Eliminate useless checks in 55f7d3b70a
  • Fixed opcode description in 1305d9c0d2
  • Delay EG(exception) check on slow path in 9a833438d1
  • Fixed dispatch from inlined hybrid opcode to another opcode in 1804fd634e

George Wang

Jan Altensen

  • azure: exclude some documentation paths in f8788eb7f3

Joe Watkins

  • implement tsrm_is_shutdown API in 68485f8ab4
  • add ini config details to php-config in 2d5f277a2d
  • implement support for workers in cli-server on platforms supporting fork in 82effb3fc7
  • simple ignore arguments in exceptions implementation in 0819e6dc9b
  • improvements to cli server in 30019f47a5

Joshua Westerheide

Nikita Popov

  • run-tests: Don't die unnecessarily in 74a7d00846
  • Fix stream leak in phar cache_list in c7962207d7
  • Fix TimeZone leak in intl MessageFormat in 77f7ec5152
  • Fix UConverter leak in b53bb3c15b
  • Fix SSL_CTX leak in ftp extension in 6fcae63f61
  • Fix leak on sqlite3 open error in 8277acefbd
  • Fix CURLINFO_COOKIELIST leak in 8757f30cc7
  • Fix out of bounds write in phpdbg in 42b22d3a94
  • FFI: Perform bitfield operations byte-wise in 0f3ca15bb7
  • Fix fpm limit_extensions leak in 698dd32b03
  • Use ldap_destroy instead of ldap_unbind_ext in 80958d0f90
  • Fix xml doc leak in soap in 788a68900d
  • Remove stream_socket_sendto.phpt in 7d28a24c66
  • Fix use-after-free in stream freeing during shutdown in 6bebe833a2
  • Fix persistent connection leak in mysqli in 2f0f895284
  • Add tracked allocator mode in cfeda978df
  • Fix persistent XML memory leaks in SOAP in 78375aa52f
  • Don't use zmm for PHPDBG_G(exec) in 2149ed7072
  • Fix phpdbg shutdown order in c3132781ec
  • Fix opcache blacklist leak in 40d6147dd0
  • Remove posix_getlogin_basic.phpt test in 08027e85fa
  • Fix custom heap free in 70fa4715a4
  • run-tests: Don't pass --INI-- settings to --SKIPIF-- in b195412bf3
  • Fix init_file leak in phpdbg in 8c4d199851
  • Free ZTS lock in opcache in a78adce5cb
  • Fix mysqlnd memory leak in f365d0e00e
  • Add support for proc_open() with a command array in 8be051015e
  • Add tracked arena allocator in 7632a411e3
  • Fix out-of-bounds read in array compilation in 9f81c56e42
  • Update error message in libmysql test in c0bf3bc50c
  • Avoid reliance on arena details on phpdbg oplog in 50cce5eb4f
  • Fix out of bounds read in sccp in ca6f41aa5a
  • Set up asan+ubsan scheduled build on azure in 54dd762f59
  • Fix arginfo leak in disable_functions in 3698303540
  • Mark ifunc resolver functions as unused in 88d52ae7aa
  • Remove phpdbg_xml_asprintf() in cf29c0f212
  • Disable ifunc resolvers if memory sanitizer is used in 2c8819b89c
  • Use strcmp() in phpdbg_eol_global_update in 45ab57339e
  • Disable RTLD_DEEPBIND under memory sanitizer in 736172d23d
  • Add some tolerance to time_sleep_until() test in 5c0a9a4096
  • Msan: Unpoison getrandom() syscall result in 7e6db70064
  • Don't use fast_memcpy under msan in c8af6a7fa7
  • Msan: Unpoison buffer written by file cache in da06f7f383
  • Fix unused variable warnings when mbregex disabled in 7defd5f69c
  • Run file_put_contents_variantion8 in separate directory in 83ee7b4c07
  • Clarify #if indentation in time limit implemementation in 01e1e1991d
  • Initialize last_line in phpdbg globals in af3e2d3186
  • Skip perf-sensitive fileinfo tests in 7acc828abf
  • Generate less code in compile time binary op test in 59522c5a85
  • Setup msan on azure in 0dfca74be2
  • Remove unused (module|request)_shutdown_for_exec in b88ef3dc58
  • Update proto comment for proc_open in 1e06a8ef95
  • Fix clang build in 03846afdf7
  • Backport test fix in 32c68428a9
  • Fixed bug #78230 in 4892bbc167
  • Fixed bug #78239 in 2bf880db2c
  • Skip pcntl_sigwaitinfo() test under asan/msan in aff0b77d15
  • Fix file conflict in fgets test in 6dd4cccef8
  • Remove curl_basic_017.phpt in 959c84b249
  • Fixed bug #78231 in 0e48e35e04
  • Avoid use of random ports in some socket tests in d6d9024cb8
  • Improve unlinked class diagnostics during preloading in f857648270
  • Set PROPERTY_TYPES_RESOLVED flag for internal classes in 1fea887cc0
  • Preloading: Prevent autoloading while resolving constants in df243f19be
  • Preloading: Also handle trait methods outside main script in 4a2646cf45
  • Preloading: Relax known type restrictions in b250f89b92
  • Assert that HT entries using add_new APIs are really new in 6a9127c100
  • Compact literals: Don't insert unmergeable keys in a0e7624059
  • Preloading: Don't move conditional functions to back to scripts in d3c4841b18
  • Fix wrong size calculation related to function name in ea43624972
  • Add test in 24ecfcc833
  • Optimize integer in_array with strict=true in ea86a9209c
  • Fix inference for compound object op on dim in c353f17d42
  • Make sure all cases of fetch_dim_w adjustment are handled in 73fd2da754
  • Backport fe_reset_rw case in 5846e85283
  • Mention that zend_parse_parameters should not be tested in 7514b5d91c
  • Make busy wait busier in 392398bfe6
  • Add ReflectionReference::getRefcount() in 428cfdd181

Peter Kokot

Pieter Hordijk

  • Removed mysqlnd stats from phpinfo page in 6ab04a6eef

Robert Kopack

  • Implement SQLite extended result code functionality in b546ae986a

Sara Golemon

  • Bugfix #78208 Needs rehash with an unknown algo should always return true in 27f1f3ed1a
  • Provide argon2i(d) password hashing from sodium when needed in 0ba1db7a4a

Scott Dutton

  • Deprecate passing invalid character to base_convert etc in d90cdbd9df

Sebastian Pop

  • Fix compilation errors when building against libmysql in 70ef87539d

Sjon Hortensius

  • PDO: support username & password specified in DSN in a7881df281

Stanislav Malyshev

  • Simplify expression and remove the possibility of div by 0 in 57e7c3aac1



  • Fix bug #78192 PDO SQLite SegFault when reuse statement after schema has changed in 05c00a832c
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.