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

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

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

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

Commit List

Andy Postnikov

Benjamin Eberlei

  • Introduce error notification callbacks that are run independant of zend_error_cb in 6c8b94eb42
  • Add error notification callbacks to UPGRADING.INTERNALS in 4890bf19aa

Christopher Broadbent

Christopher Jones

  • Retrofit description of recent PR changes in 3804858c47
  • Bump OCI8 version to 3.0 so a PHP 8 PECL release can be made in 8058776295
  • Rename OCI8 classes to use standard names so arg stub parsing works in 74ca2a39a7

Christoph M. Becker

Chuck Adams

  • (ffi) fix ifdefs for non-windows systems without long double in f06a6b4697


  • Don't generate JSON scanner and parser during configure in 7817ff8ce1

Derick Rethans

  • Revert "Partial fixed bug #79649 (Altering disable_functions from module init corrupts memory)" in 972383fda4
  • Prepare for 7.4.10 in 973be68c63

Dmitry Stogov

  • More accurate reference-counter inference (with support for ext/intl/tests/bug72241.phpt) in ab5f8f4baf
  • Change zend_get_known_property_offset() into zend_get_known_property_info() and cleanup in fa5355ba08
  • Use information about recorded classes for speculative FETCH_OBJ optimization in 9e8a8e6ab9
  • Fixed tracing JIT support for $http_response_header in ad52e4cad9
  • Use small counter values for testing in 69b1f3d53d
  • JIT support for opcache restart in a75cf0c7e1
  • Fix jumtable index calculation in 15c6b673a2
  • Align jumptables in 67828abca7
  • Use RIP-relative addressing in 5872bfc481
  • Fixed tracing JIT support for extract() in 6d8d08f13b
  • Move assert() to right place in b4ae5a20b6
  • Prevent trace recorder reenterancing in 5fec1558b5
  • Fixed mysqli_fetch_row() function info in 0d9bebac00
  • Bad function detection in 9d14bdb377
  • Fixed register allocation for tests/lang/operators/preinc_basiclong_64bit.phpt in 31258e4550
  • Make tracing JIT to support operator overloading independently from opcache.optimization_level ini directive in c60d0dc2f4
  • Restore registers in 8d15a2bc8e
  • Fixed tracing JIT miss-compilation in b7dd8679df
  • JIT for array merging in d4fdf79add
  • Improved reference-counting inference in 48963378c1
  • Better support for 64-bit .aword constants in ddba2a705e
  • Tracing JIT for SWITCH instructions in 7c16d11e3c
  • Check type guard on result of FETCH_DIM_R/IS instructions in f74e9a4dd3
  • Fixed tracing JIT for ASSIGN to typed reference in ebb94af754
  • Check type guard on result of FETCH_OBJ_R/IS instructions in d50919a03b
  • cleanup in 03a98d9420
  • cleanup in 925909dc46
  • Eliminate some reference-counting in a167e0426d
  • Eliminate useless exception checks in e0af92c16e
  • JMP optimization in 6b2c4be48a
  • Side exit on overflow in 83478d4fe0
  • Switch to tracing JIT by default in 10b09578a8
  • Remove old code (BP_VAR_RW warning) in 9f0213fff3
  • Fixed incorrect deoptimization info in d67adc39a0
  • Fixed tracing JIT for VM without global register variables in 2b7035e824
  • Keep CPU regesters used by deoptimizer in 4b13985f25
  • Fixed VM interrupt handling in 774bc760af
  • Fixed tracing JIT exception handling in 7cfb141f9d
  • Fixed pg_select() function info in 91d4d2443f

Evgeny Stepanischev

Gabriel Caruso

  • Update versions for PHP 8.0.0alpha3 in 57e16009fe

George Peter Banyard

  • Use HashTable directly instead of zval in 06da048622
  • Use ZPP callable check in zend built in functions in 7ac9e9bf64
  • Voidify some ZEND_API functions in 9839752a9c
  • Use ZPP string|array union check in PCRE extension in af1de14802
  • Promote Notice to Warning in libmagic in 3f286fa89a
  • Use dedicated function for illegal offset type error in 2297a6d364
  • Use consistent types in 4f3eccfd4d
  • Drop unused param in zend_parse_arg_class_name_or_obj() in fa60f57be4
  • Drop useless zend_accel_script_persistable() function in a1fee87c9a
  • Use ZPP callable for PDO Sqlite in a1097677a5
  • Use ZPP callable check in readline extension in d9330fc67e

Ilija Tovilo

  • Implement match expression in 9fa1d13301
  • Fix free of uninitialized memory in MATCH_ERROR in 1c967df5a0

Jens de Nies

  • Removed the "oci_internal_debug" function and its alias. Also deprecated the "ocifetchinto" function in 11f4a5e563

Martin Schröder

  • Support socketpairs in proc_open() in 547d98b81d

Máté Kocsis

  • Add stubs for SAPIs in f328594072
  • Review the usage of apostrophes in error messages in d30cd7d7e7
  • Retain the original formatting character in test in 95cff3ebf2
  • Addd upgrading notes about OCI8 in 6cf22529b9
  • Explode _php_image_output_ctx() into multiple functions in 19bf66a9e4

Nat Wyatt

  • Fix compilation errors when EXIF_DEBUG is defined in 6f48ccf51c

Nikita Popov

Ondřej Mirtes

  • UPGRADING - note about ReflectionType::isBuiltin() in b4dc8901c7

Paweł Tomulik

Pedro Magalhães

  • Ignore inheritance rules on private methods in 272b887b7b

Remi Collet

Rowan Tommins

  • Improve output of tokens in Parse Errors in 55a15f32ce

Sara Golemon


Tyson Andre

  • Skip upload_2G.phpt if disk_free_space() <= 2GB in 0d519fa493


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.