PHP 7.2 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 7.2.12 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.12 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-7.2.12
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.12-x64NTS.zip (24.53 MiB)
php-7.2.12-x86NTS.zip (22.9 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.12-x64TS.zip (24.66 MiB)
php-7.2.12-x86TS.zip (22.98 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.12-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:7.2.12-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.12-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:7.2.12-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.12-fpm
ChangeLog
Core
- Fixed bug #76846 (Segfault in shutdown function after memory limit error).
- Fixed bug #76946 (Cyclic reference in generator not detected).
- Fixed bug #77035 (The phpize and ./configure create redundant .deps file).
- Fixed bug #77041 (buildconf should output error messages to stderr)
Date
- Upgraded timelib to 2017.08.
- Fixed bug #75851 (Year component overflow with date formats "c", "o", "r" and "y").
- Fixed bug #77007 (fractions in
diff()
are not correctly normalized).
FCGI
- Fixed #76948 (Failed shutdown/reboot or end session in Windows).
- Fixed bug #76954 (apache_response_headers removes last character from header name).
FTP
- Fixed bug #76972 (Data truncation due to forceful ssl socket shutdown).
intl
- Fixed bug #76942 (U_ARGUMENT_TYPE_MISMATCH).
Reflection
- Fixed bug #76936 (Objects cannot access their private attributes while handling reflection errors).
- Fixed bug #66430 (
ReflectionFunction::invoke
does not invoke closure with object scope).
Sodium
- Some base64 outputs were truncated; this is not the case any more.
- block sizes >= 256 bytes are now supposed by
sodium_pad()
even when an old version of libsodium has been installed. - Fixed bug #77008 (
sodium_pad()
could read (but not return nor write) uninitialized memory when trying to pad an empty input).
Standard
- Fixed bug #76965 (INI_SCANNER_RAW doesn't strip trailing whitespace).
Tidy
- Fixed bug #77027 (tidy::getOptDoc() not available on Windows).
XML
- Fixed bug GH-30875 (
xml_parse_into_struct()
does not resolve entities). - Add support for getting SKIP_TAGSTART and SKIP_WHITE options.
XMLRPC
- Fixed bug #75282 (
xmlrpc_encode_request()
crashes).
Commit List
Adam Saponara
- Fix #75851: Year component overflow with date formats "c", "o", "r" and "y" in c097acd52e
Anatol Belski
- Fixed bug #76948 Failed shutdown/reboot or end session in Windows in b0547a3dfb
- Avoid code duplication and don't miss env restore in 044eb39e63
- Fixed Bug #76942 U_ARGUMENT_TYPE_MISMATCH in 534684d104
- Add test for bug #76942 in c2a956de6f
- Add test for bug #76942 in 72df422d69
- Fix test when it's run on another drive in fda06127fa
- Fix tests for ICU 63.1 in 4461fb9c26
Christoph M. Becker
- Fix GH-30875:
xml_parse_into_struct()
does not resolve entities in 2845f859c1 - Add support for getting SKIP_TAGSTART and SKIP_WHITE options in b33124239a
- Fix #77027: tidy::getOptDoc() not available on Windows in 8a9e0312ce
- Fix #75282:
xmlrpc_encode_request()
crashes in 502b187ae8
Derick Rethans
- Upgrade timelib to 2017.08, to fix bug #77007 in 94a98f2c63
- Updated to version 2018.6 (2018f) in 41241d109a
- Empty merge in c22b9e0115
- Updated to version 2018.6 (2018f) in c3a8313136
Frank Denis
ext/sodium
: Avoid shifts wider than 32 bits on size_t values in d057458166ext/sodium
: Use a correct max output size for base64 decoding in 15ba7df224ext/sodium
: Fixsodium_pad()
with blocksize >= 256 in bf48d0c475ext/sodium
:sodium_pad()
: do not copy any bytes if the string is empty in 82a93c1794
James Titcumb
- Fix reflection arguments for sodium_memzero function in 950c338f80
Manuel Mausz
- Fix #76972: FTP data truncation due to forceful ssl socket shutdown in bb4a2e8bb7
Mizunashi Mana
- Fix #77041: buildconf should output error messages to stderr in 9f5cb626ed
Nikita Popov
- Fixed bug #76846 in 45cdcb2d0b
- Fix test for release builds in fa84b8ebb4
- Fixed bug #76946 in 83e2b9e220
- Fixed bug #75479 in db80e0e2ad
- Fixed bug #76936 in d2477b284b
- Fixed bug #66430 in f0647edd88
- Reflection: Copy invoke function also in the variadic case in 945f315506
Pedro Magalhães
- Fix #76888 - Remove unstable test in 82e10f3974
- Remove unstable dns tests in 49835e1436
Peter Kokot
- Convert CRLF line endings to LF in 3f72c77ce4
- Convert CRLF line endings to LF in 2aa897476f
- Trim trailing whitespace in source code files in 7f6387b59a
- Trim trailing whitespace in source code files in 902d39a3a7
- Fix failing ext/zlib/tests due to whitespace in 9120e79e9f
- Fix failing tests/lang due to whitespace in ed64e1d59a
- Sync leading and final newlines in source code files in 03f3b8479b
- Sync leading and final newlines in source code files in 60a69daec6
- Fix failing ext/session/tests due to final newlines in afd534f163
- Trim trailing whitespace in *.phpt in 7af945e271
- Trim trailing whitespace in *.phpt in 17ccbeec32
- Sync leading and final newlines in *.phpt sections in 113213f027
- Sync leading and final newlines in *.phpt sections in f1d7e3ca0b
- Fix tests/output/bug74815.phpt generating errors.log in de9f325c12
- Fix #77035: The phpize and ./configure create redundant .deps file in 447b41f6bb
Pierrick Charron
- Fixed bug #76965 INI_SCANNER_RAW doesn't strip trailing whitespace in f42d7bddc0
Remi Collet
- bump zip extension version in da05b7e81e
- Update CREDITS for PHP 7.2.12RC1 in 41267abcee
- prepare release in 72e7b0b77b
- Update versions for PHP 7.2.12 in 6c5fc072c8
Sara Golemon
- Bump version in 5f29e3fb6e
- Bump versions for 7.1.24-dev in 69c1b619c9
stodorovic
- Fix #76954: apache_response_headers removes last character from header name in 47b89bc531