PHP 8.0 is currently only receiving security fixes. PHP 8.0.0RC4 is not the latest version in the series, and using this release is not recommended. PHP 8.0.30 is the latest in the series.
Downloads
Source Code
Git Clone
Use Git to clone the 8.0.0RC4 tag from the PHP Git repository.
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.0.0RC4
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-8.0.0RC4-x64NTS.zip (25.25 MiB)
php-8.0.0RC4-x86NTS.zip (23.29 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-8.0.0RC4-x64TS.zip (25.35 MiB)
php-8.0.0RC4-x86TS.zip (23.35 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:8.0.0RC4-cli-alpine
Debian-based: More compatible with other components, complete, and are widely used.
docker pull php:8.0.0RC4-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:8.0.0RC4-fpm-alpine
Debian-based ZTS Apache: Includes Apache web server integrating PHP as an Apache module.
docker pull php:8.0.0RC4-apache
Debian-based NTS FPM: PHP-FPM, can be integrated with Nginx, Caddy, and other web servers over Fast CGI.
docker pull php:8.0.0RC4-fpm
Commit List
Alexander M. Turek
- Fixed bug #80310: Support for icu4c 68.1 in 8eaaabdd58
Alex Dowad
- Convert numeric string array keys to integers correctly in JITted code in d44235acae
- Fix test added in d44235ac in 526c624dc4
Bogdan Ungureanu
- Improved error message for typed class properties with null as default value in 6d6fadeb0d
Chris Brown
- Fix typo in UPGRADING in 4d16d3cc38
Christoph M. Becker
- Fix #79177: FFI doesn't handle well PHP exceptions within callback in f547412cba
- Fix #44618: Fetching may rely on uninitialized data in c21e901ba7
- Fix format specifier in ee3227af48
- Fix
bug79177.phpt
wrt. JIT in 0427dcb913 - Fix #70461: disable md5 code when it is not supported in net-snmp in 9690ded288
- Fix #80266: parse_url silently drops port number 0 in 2cab085bb3
- Raise E_WARNING on PHP related errors in d65a520b1d
- Split tests for compatibility with ICU 68.1 in 77b6e95d92
- 7.3.26 is next in b5ce6df0da
Derick Rethans
- Update version in 7.4 branch in 25643b56a2
Dharman
- Fix bug #79375 in b03776adb5
- Handle mysqli errors in more cases in 990bb34891
- Fix bug #72413: Segfault with get_result and PS cursors in b5481defe6
- Fix tests for MariaDB in cf38a6f51f
- Remove embedded property from mysqli_driver in 114613dc5f
Dmitry Stogov
- Fixed support for named parameters (Zend/tests/named_params/references.phpt) in 43e493884c
- Fixed tracing JIT support for aliasses (Zend/tests/bug75420.13.phpt and
ext/standard/tests/streams/bug60106.phpt
) in e6b51ccc58 - Fixed memory leak in Zend/tests/bug78999.phpt in 47a56208f0
- Don't force rebuild of symbol table, when populating $http_response_header variable by the HTTP stream wrapper in 2693f799be
- Fixed run-time binding of preloaded dynamically declared function in 68f80be9d1
- Create TSSA loops for recursive call/return traces and move invariant type guards out of loops in b133183e35
- Fixed incorrect invariant guard motion in ff91800602
- Move stack overflow checks out of the loops in 98e4f9466d
- Fixed missaligned access in 4bbe55b250
Gabriel Caruso
- Update versions for PHP 8.0.0RC4 in 446881a46d
Nikita Popov
- Sync test with master in fe55fe1f54
- Fixed bug #66528 in 68dcaa29d8
- Fixed bug #65825 in a66d73db4b
- Retain QUIT_SEND connection state in 24537a73c0
- Report gone away error in one more place in 78b44ddeba
- Handle errors during PDO row fetch in 0044a81fbb
- Fixed bug #80290 in 3bd3651bcc
- Fix signed integer overflow in 085e16c301
- Fix SSA integrity violation for type inference in dead code in 83738281eb
- FIxed bug #80299 in 904c1b6589
- Rename opcache.jit_max_loops_unroll to opcache.jit_max_loop_unrolls in 0571f09424
- Fix another implicit function declaration in configure in 00ba784a2c
- Preserve trait method alias name during preloading in 6f2431860b
- Fix persisting property info table with internal parent in 14c42c6961
- Don't ignore internal classes during preloading in 51b5f7d67d
- Fix variance checks on resolved union types in ee934f8245
- Allow unlinked classes when performing in_compilation variance check in 7e55317558
- Fix use of type copy ctor when importing trait properties in 9fd8e00f1a
- Report parse errors during preloading in b009573f4e
- Don't disable early binding during preloading script in 54668a449e
- Fix dynamic function definition in preload script in e0d6c3f7ba
- Don't disable opcache for generic tests in 9ed2f4898b
- Don't
xfail
method_static_var.phpt
in 57b0e5a045 - Assert that references are not persisted in 7794925ba4
- Fix static variable in methods inheritance during preloading in 670fe594b9
getlastmod()
can return false in 73321bc300- End output handlers in preload shutdown in 7c7c6b0d73
- Fix multiple trait fixup in 33969c2252
- Fixup trait methods even if no traits are used in 2effbfd871
- Backport preloading trait fixup fixes in 6808968c89
- Rename
PhpToken::getAll()
toPhpToken::tokenize()
in b1019f46ed - Skip preload test under asan in 5df461bc91
- Fixed bug #80334 in 6fb3d92525
- Use true/false instead of TRUE/FALSE in intl in 975735c027
- Fix phi use chain management when renaming variable in d971b67027
- Add integration test for symfony preloading in f419e049ff
Remi Collet
- only display libzip both headers/library versions if they differ in 8d7ca472e5
- report about ZSTD compression availability in e2509cf98a