PHP 7.2 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 7.2.0beta1 is not recommended. PHP 7.2.34 is the latest version in the series.
Downloads
Source Code
Git Clone
Use Git to clone the 7.2.0beta1 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-7.2.0beta1
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.2.0beta1-x64NTS.zip (23.8 MiB)
php-7.2.0beta1-x86NTS.zip (21.89 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.2.0beta1-x64TS.zip (23.88 MiB)
php-7.2.0beta1-x86TS.zip (21.93 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.2.0beta1-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:7.2.0beta1-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.2.0beta1-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:7.2.0beta1-apache
Debian-based NTS FPM: PHP-FPM, can be integrated with Nginx, Caddy, and other web servers over Fast CGI.
docker pull php:7.2.0beta1-fpm
Commit List
Anatol Belski
- update NEWS in ce64b82ebb
- update NEWS in 6f78923d1f
- update NEWS in cae6767f8d
- vim folds and modelines in a56700043e
- add missing include guards in bae668ee2a
- fix datatype in a29264eb8c
- fix datatype in a0203ea143
- vim folds and mode lines yet in 6a3a2bf18e
- further sync for vim mode lines in bc5811f361
- replace the stack var by a macro in 9ad0d0ca3c
- fix command in 57432da0b9
- update libs versions in 0fdceb6cd5
- Fixed bug #74883 SQLite3::__construct() produces "out of memory" exception with invalid flags in b5338c0b7d
- sync vim mode lines in main in 384f0f8a4c
- eliminate casts in aaf09f7bdf
- remove useless cast in e403acc74b
- cleanup casts in 84079f4a1e
- remove some casts in 72b0a3a892
- fix warning in 8d0d326ff9
- comply with POSIX signature in ba5df1c682
- fix comparison warning in a51cb393b1
- fix uninitialized var in e24a8012a0
- improve test in fd08eaa8bc
- remove checks for eol dependencies in e0809fe62d
- eliminate casts in 2283b6ff53
- Revert "Add more constants, improve comments, and add tests" in a797421e98
- fix datatype in 07c7445dd0
- switch to next binary tools sdk version in b47cff48de
- update NEWS in 3bcab31749
- update NEWS in 82acb58d8a
- fix symbol availability and ws in 8cfe479d1f
- fix macro redifinitions in cbbf579f21
- remove excessive checks and fix warnings in c620daecb4
- Upgrade bundled PCRE to 8.41 in 8a287c0ea0
- parametrize zip names in 2b37da9eda
- Revert "remove excessive checks and fix warnings" in d1ee66655b
- increase poll timeout as false positives mitigation in 04cc2f6473
- Guard against AppVeyor losing deps issue in 2f606dc5e8
- cleanup discontinued target in 1300017cdc
- extend comment in d9f72886aa
- Revert "Enable whole program optimization for builds without PGO, too" in bc16deee83
- add next vc15 toolset to the list in 613102bd67
- fix fold in 5fb2abd6b0
- add oniguruma.patch to ease future upgrades in 1e2764614b
- Enable valgrind support for PCRE by default in debug builds in 850bb998d9
- fix default args for
--with-pcre-valgrind
in 24de0fe9f4 - disable
--with-pcre-valgrind
on travis in 9ce076a3d1 - update NEWS in 89eb27a99c
- Fixed bug #74923 Crash when crawling through network share in 5d15fdc4a4
- update NEWS in 0b5683e480
- update NEWS in d6bcfcd9eb
- Add test for bug #74923 in 6cd140fdf8
- fix missing var for phpize in 36c3d71407
- fix typo in ea51bcd1fa
- fix new password related pieces wrt failing tests in 6e4f3d1967
- fix missing var for phpize in 4ef9f536ba
- fix regression introduced by 0782a7fc in a39fd99524
- move to 7.0.23 for dev in 649027b963
- Exclude
ext/ftp
from AppVeyor test run in 0da10134f2
Andreas Treichel
- Implement Countable for DomNodeList and DOMNamedNodeMap (Request #74837) in f725d9b1b9
Andrey Andreev
- Add missing NEWS entry, update UPGRADING in ce4e07e37d
Christopher Jones
- Fix NEWS entry location in 5ca02ca494
- Fix NEWS entry location in 5c96a255ea
- Bump OCI8 version for recent patch in c1504b81d3
Christoph M. Becker
- Fix #74435: Buffer over-read into uninitialized memory in 8dc4f4dc9e
Côme Chilliet
- Added EXOP features based on patch from http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/databases/php-ldap/files/ldap-ctrl-exop56.patch in a0920f2822
- Fixed building errors in LDAP EXOP in def09c7cab
- Fixed
ldap_exop_passwd
and added tests for it in ae76c8ba2c - Fixed
ldap_exop_whoami
and added a test for it in fdafd68419 - Fixed
ldap_parse_exop_whoami
andldap_parse_exop_passwd
and added test for them in 28530b2f1c - Fixed
ldap_exop
andldap_parse_exop
. Only tested them for whoami exop. (see test file) in e832ce4b22 - Removed
ldap_refresh
function as I’m not sure how to fix/use/test it in 4652c46245 - Added constants for standard EXOPs in 9aa99cc34c
- Removed TODOs regarding implementing passwd and whoami exops based on
ldap_exop
in 413e9c84f6 - Improved
ldap_exop
test to encode&decode a passwd EXOP to test sending/recieving data in 5020325a6f - Removed two step syntax for EXOP helpers, one call workflow is enough in e9001cab46
- Swapped position of retoid and retdata as retoid is almost never used in bda80aa332
- Removed TSRMLS_CC instances left over by LDAP EXOP patch in e05d230e52
- Removed unused variables left over by LDAP EXOP patch in 13062efd02
- Changed API to avoid using passing result by reference in 3207747b9e
- Test
ldap_exop_passwd
with less parameters to be sure it works in 209c9ba384 - Added support for controls to
ldap_get_option
in 3a09c1246c - Added constants for known ldap controls OID and tests for ldap_get/set_option for controls in 274d84139b
- Small fix in
ext/ldap
, Moved vars definitions to the beginning of the block using them in ed8bfcc6ea - Filled in NEWS file with
ext/ldap
last modifications in 4219ca966e - Fixed removing all controls by passing an empty array to
ldap_set_option
in a148ee8c7c - Updated NEWS file with LDAP changes in 9bcd93201f
Derick Rethans
- Fixed parsing of strange formats with mixed month/day and time strings in e8b7698f5e
Dmitry Stogov
- Separate constants propagation code shatred between "first" and "block" passes into helper functions in 6276268b77
- Check for exceptional cases before actual constant evaluation in 0965a4ef9f
- Keep information about SSA variables, that may be modified indirectly in acffb7a080
- Fixed final dump "after optimizer" in 7bb4ae59c3
- Added missed dump of "main" script code in fc336c78e7
- Fixed bug #74873 (Minor BC break: PCRE_JIT changes output of
preg_match()
) in 29653da385 - Revert "Fixed bug #74878" in 161c378cc8
- Fixed memory leak introduced by 7cb5bdf6 in 7be2637dce
- Fixed compilation error in 2b7d3fb45f
- Value of EG(user_exception_handler) should't relive request boundary in 43e283fd64
- Resources should be closed during object destructioin, not during freeing in 09d3b7386c
- Added goblal optimisation passes based on data flow analyses using SSA form: in 2a286ad599
- Allocate additional slot for third argument in b31e77dbea
- Removed vim mode lines.
zend_vm_opcodes.h
loses these lines after regeneration. Lines inzend_vm_def.h
lead to insertion inthe middle ofzend_vm_execute.h
in 5b0e6248e6 - Fixed CFG/SSA construction (avoid multiple identical predecessors) in d9d3b2c206
- Separate ISSET_ISEMPTY_CV/UNSET_CV from ISSET_ISEMPTY_VAR/UNSET_VAR in 1180d8c801
- Constant evaluation of
in_array()
(support for more cases) in eb6c7471cb - Constant evaluation of
in_array()
(support for more cases) in 3754272818 gc_check_possible_root()
may throw exception in f49ee79e95- Added NEWS entry in bb743ca62d
Ferenc Kovacs
- move NEWS entry to the correct place, also bump the version in 7991a88675
- add missing NEWS entry for #74087 and also fix the formatting in 390f64701d
Francois Laupretre
- Fixed bug #74866 extension_dir = "./ext" now use current directory for base in 0782a7fc63
Frank Denis
- Revert "fix macro redifinitions" in dfac71d096
- sodium ext: update the cryptokx*() API to the libsodium one in 6ac6d2c64a
- sodium ext: remove function names before exception messages in a5258ed645
- sodium ext: sort prototypes in 8e8fbf51f7
- sodium ext: add bindings for
keygen()
functions in b071fcb81d - sodium ext: remove unused sodiumrandombytes*() prototypes in aa32d989c7
- sodium ext: implement
sodium_crypto_kdf()
in 09b15e4f30
Jakub Zelenka
- Add JSON_INVALID_UTF8_SUBSTITUTE and JSON_INVALID_UTF8_IGNORE in 0d0f7cde8c
- Introduce internal
php_json_encode_ex
to allow extensions setting depth in 9c58822653 - Bump
PHP_JSON_VERSION
to 1.6.0 in 18180bb161 - Allow setting SNI cert and pk in separate files in c08dba3431
- Make consitent naming and improve CS in xp_ssl in 5381ff757d
- Make functions in
openssl.c
more consistent in 90ae2aec8c - Add support for OpenSSL security level in 26982e36d5
jhdxr
- Fixed bug #74852 (property_exists returns true on unknown DateInterval property) in 5cf54f6073
Joe Watkins
- news entry for 74603 in 2928feca46
- news entry for 74435 in 1af5ca0746
- news entry for 74111 in 739ecf5430
- news entry for 74651 in 700803b70c
- news entry for 74819 in 18eb78854c
Kalle Sommer Nielsen
- Write the URL on a new line, so that it is easier copyable in c5f83f3426
- Expand sb's name and capitalize my own in 4be4a38d99
- Fix redefine warnings in 9507d14584
- Fixed bug #72324 (
imap_mailboxmsginfo()
return wrong size) in 5a991ea49b - Fixed bug #74428 (
exif_read_data()
: "Illegal IFD size" warning occurs with correct exif format) in 900ce92c9a - Fixed bug #50660 (
exif_read_data()
: Illegal IFD offset (works fine with other exif readers)) in cd8d0aad7f - This should be EXPECT instead of EXPECTF in babc3c522f
-
- Fixed bug #72819 (EXIF thumbnails not read anymore) in e6903d471e
- We currently don't use the guessing code, so don't compile it in 134047dfde
- Added test case for bug #73115 which was fixed by recently fixed bugs in 469206c84e
- Fixed file name for case sensitive file systems in 106386dd98
- Add myself as exif maintainer in b1fd08d94c
- Deprecated the
read_exif_data()
alias in ba28d75c2c - Fix test in 38d019979e
- Silent compiler warning in 7bb696dc49
-
- Implemented #65187 (exif_read_data/thumbnail: add support for stream resource) in 969eb8345b
- We need to check for the length here too, or we crash and no one likes that! :( in 363bb03b7e
- Remove debug code in 7845182edd
- Fix compile error with EXIF_DEBUG in 9cf586cdfb
- Don't add a new line to undefined tags in EXIF_DEBUG mode in bf7f6f9078
- Turn off EXIF_DEBUG so Travis don't complain at me in f7d9f6456c
- Ensure that the stream position is kept between reads in 997e2e5452
- Fix test title in 333c362178
- WS in 4d684a6cd7
Lior Kaplan
- SIZEOF_SIZE_T doesn't exist on AIX and POWER8 (ppc64le), keep using SIZEOF_LONG in c2c60fcac7
Nikita Popov
- Fix bug #73807 in 0f8cf3b849
- Drop dead abstract method check from
zend_call_function()
in 8126599670 - Drop useless allocation in
php_filter_callback
in 3f8ceb6f05 - Drop duplicate dtors in update_opN in 8e0ddc89fe
- Fixed bug #74111 in f8c514ba6b
- Fixed bug #74111 in 3a25a56a92
- Fixed bug #74878 in 9069734b57
Paragon Initiative Enterprises
- Squashed commit - Add
ext/sodium
in 5cfa26c181
Pedro Magalhães
- #73594 tests only check the extra params if dns_get_record is successful in 2689917b17
- Fix #49649 - Handle property visibility changes on unserialization in 7cb5bdf64a
Peter Kokot
- Fixed bug 74913 redirecting incorrect include <sys/poll.h> in 0db20a7cb1
- Fixed bug #74906 redirecting incorrect include <sys/errno.h> in 4d08b9dac0
- Fixed bug #74906 redirecting incorrect include <sys/errno.h> in 9780d16376
Remi Collet
- Adapt for 32-bits which fails at different offset (49 vs 38) in 4b38feabe7
- valid_symbol_table removed in 8d1ae4e1c5
- Patch from the upstream git in 4e68b2c52b
- Patch from the upstream git in 2693e52113
- Patch from the upstream git in bdf7393ddb
- Patch from the upstream git in 27a743b82b
- Patch from the upstream git in 703be4f77e
- NEWS for oniguruma in 55b880070c
- minor fix for web announce in ec0ad331cd
- Fixed bug #74837 - NEWS in 6f97fb47ca
- Upgrading note for #74837 in 5369006edf
- ZipArchive implements countable, added
ZipArchive::count()
method in 569d164c4a - fix CREDITS file in ae96c7f48f
- NEWS for Sodium in c229ab587c
- fix authors in d269aa2003
- Remove this for now, as not found in 90b2cecbaa
- Fix segfault in
php_stream_context_get_option
call in 2458dce3e5 - restore file deleted by mistake in a merge commit in d5f7e01f7c
- change order, allow to build as shared extension in 249f75e7e4
Sara Golemon
- Remove extraneous configure flag in bf0f769d58
- Provide
zend_string
wrappers for phpbase64(en|de)code in 3de82a0349 - Refactor
password.c
in 7165e28738 - Refactor
password_hash()
in e93f089d6a - Bump all API numbers in prep for 7.2 fork in 05ff0c5180
- Update versions for PHP 7.2.0beta1 in a5adbd55b5
Sebastian Bergmann
- Tweak in 674b11d10e
Stanislav Malyshev
- Update NEWS in 3eecee16d1
- Fix bug #74651 - check EVP_SealInit as it can return -1 in 89637c6b41
- Fix bug #74603 - use correct buffer size in 5f8380d33e
- Fix bug #74145 - wddx parsing empty boolean tag leads to SIGSEGV in 2aae60461c
- Fix bug #74087 in f7f4fd4706
- Update NEWS in 12107d619b
- Fix bug #74651 - check EVP_SealInit as it can return -1 in 73cabfedf5
- Fix bug #74603 - use correct buffer size in 0525574913
- Fix tests in e46d589624
- Fix wddx in 6b18d956de
- Improve fix for #74145 in f269cdcd4f