PHP 8.0.0RC3: Downloads, Changelog, News

Release Information

PHP Version
PHP 8.0
Release Date
Release Type
Bug Fix Release
Release Status
EOL, Use PHP 8.0.30
Branch Status

PHP 8.0 reached EOL on , and all releases of this version no longer receive security or bug fixes. Using PHP 8.0.0RC3 is not recommended. PHP 8.0.30 is the latest version in the series.


Source Code

Git Clone
Use Git to clone the 8.0.0RC3 tag from the PHP Git repository.
git clone --depth 1 --branch php-8.0.0RC3
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

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.
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.

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:8.0.0RC3-cli-alpine

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

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

Commit List


  • Don't set xdebug.default_enable in run-tests in f17b2a75a5

Christoph M. Becker

Côme Chilliet

  • Change $controls parameter to default to null in ext/ldap in 15a3eca3ef

David Carlier

  • DragonFlyBSD build update for opcache JIT part in 3841ea338e

Derick Rethans


  • Consistent error handling in mysqli_poll in 7e6b840778

Dmitry Stogov

  • Added missing side exit in 06bb1feb09
  • Avoid refcounting when return CV (similar to optimization in VM) in 5572318166
  • Use zero-extended mov insted of sign-signed movsxd in bf321f0c14
  • Avoid partial register stall in fc2d477c5b
  • Fixed range propagation in ee5b1dd6dc
  • Improve register allocator (give preference to loop variables) in ea1590937b
  • Improve register allocator (register reuse) in 5e17d88b63
  • Improve JIT for fetching character form string in 0ac810bbc5
  • Eliminate dead type store in a1cac4fefc
  • Eliminate useless mov(s) in 9efb258fc1
  • More accurate live range construction in cb6f9a6568
  • Avoid register allocation for ASSIGN into aliased variable (it might be indirectly changed into IS_REFERENCE) in 30cf0a04bf
  • Checj type guards before loading values into CPU registers in 20cbb233c4
  • Missed warning in 5626dcdb9d
  • Fixed reference-counter inference in 838d8d0ba0
  • Fixed register allocation in 0f8518f875
  • Fixed incorrect register allocation in ext/gd/tests/imagecopyresampled_variation1.phpt in 0fa154ad8d
  • Better JIT support for aliases in 9d3cc223b2
  • Fixed MAY_BE_INDIRECT inference in b7df636589
  • Fixed register allocation in ba525a68d9
  • Fixed memory leak in a17cec446a
  • Fixed tracing JIT for tests/classes/unset_properties.phpt in b8a6717da6
  • Fixed support for typed references in 45e2b9a7dd

Gabriel Caruso

George Peter Banyard

Javier Eguiluz

Máté Kocsis

  • Verify parameter names of function aliases in d6264b0966
  • Fix #80229: assert_options should have int and bool for parameter PHPDoc in f076ab0c0c
  • Fix default value handling of mysqli_fetch_object() in d5f92baad0
  • Fix parameter name of pspell_config_save_repl() in 4fb5ccf00c
  • Run arginfo/ZPP verification tests in strict mode as well in a8e92e361f
  • Require stubs to declare return types for magic methods when possible in 47bbfe1fc0
  • Make ReflectionUnionType final in ef6adb4e27
  • Parameter type and name fixes in ext/standard in 76e4bf3068

Nikita Popov

  • Allow passing $tag for non-authenticated encryption in 6c6a58e930
  • Fix nullability of openssl_cms_sign() parameter in 251af7329f
  • Initialize calendar_long variable in 5e34744fd9
  • More arginfo/zpp verification in 0832376411
  • Mark ldap_exop() param as UNKNOWN in 1610e81b51
  • Fix null foreground in imagewbmp in 187efc6496
  • Sync zpp in phar interceptors in e065d97e94
  • Fix leak in gmp_export() in a29016d70d
  • Skip arginfo test under msan in b2700811f3
  • Fix bug #80055 in 4ece62fba9
  • Fix leak when setting dynamic property on generator in 28e21d80b0
  • Make sure output start filename is not freed early in 97202d9d84
  • Properly handle NULL output start filename in d6a18a7738
  • Check PDOStatement initialization during iteration in 74fe9170b6
  • Add additional initialization checks to SplFileInfo in 61b33e900c
  • Disable Laravel testing in 8bc5e23f40
  • Fix bug #79983: Add support for OCB mode in 750a74ed9c
  • Revert "Fix bug #64865: Use CONTEXT_DOCUMENT_ROOT for scanning dir tree" in c97da0f819
  • Fixed bug #80255 in d3812ca41b
  • Increase timeout on file cache job in 2c8287382c
  • Fix CCM tag length setting for old OpenSSL versions in 1359f793ee
  • Fixed bug #80256 in 1c157d3fa2
  • Add test for zend_extension loading in 3966c0f8a4
  • Update bcmath.scale when calling bcscale() in ac87880add
  • Simplify and fix generator tree management in dd4a080133
  • Don't allow properties on GdImage in dd3639341d
  • Don't leak pcre error_code across requests in 41b8cdd2e0
  • Don't leak json error_code across requests in aa0d886cbc
  • Don't leak pcntl last_error across requests in c23eefb1ad
  • Make highlight_string() accept string in zpp in db5979dfe2
  • Fix stub for dba_key_split() in 97dd0eb98d
  • Properly validate ArrayObject::asort() argument in bfe7a1168a
  • Don't crash on uninitialized tidy object in d4bf0799b8
  • Don't allow passing unknown named params to class without ctor in 078df4d144
  • Make GC default threshold handling consistent in 0fb2374e06
  • Revert "Make ReflectionUnionType final" in 7f462c97f9
  • Fix parameter stats generation in 1c868b186e
  • Use separate directory in dit_004.phpt in 0535872b7c
  • Declare may_retry_reparse_point on windows only in 824cbc2781
  • Re-enable laravel tests in 8aead9e2bc
  • Deny cloning of fileinfo objects in 7817fc07e1
  • Deny serialization of finfo objects in 6d3695a217
  • Fix inconsistency in PDO transaction state in 7b9519a792
  • Skip bug46024.phpt under asan in 682357c5b4
  • Don't throw for out of bounds offsets in strspn() in d776d25a8e

Sammy Kaye Powers

Thiemo Kreuz

  • Document breaking change in strspn/strcspn in 9c28dc0ce9


  • Fix bug #79643: Invalid memory read when opcache.interned_strings_buffer is 0 in d134c0ac05
  • Fix invalid memory read on libpath in 5998b2a3a6
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.