Skip to content

phpBolt extension fails to load on ZTS (FrankenPHP / PHP 8.5) #46

@reynaldiaznan123

Description

@reynaldiaznan123

Description

When using PHP built with ZTS (Zend Thread Safety) — for example via FrankenPHP — the phpBolt extension fails to load with a runtime error indicating missing thread-safe symbols.

Environment

  • PHP Version: 8.5.3
  • PHP Build: ZTS enabled
  • Base Image: dunglas/frankenphp:alpine
  • OS: Alpine Linux
  • Architecture: x86_64
  • phpBolt Version: 1.0.7
  • Container runtime: Docker

Steps to Reproduce

  1. Use a ZTS-enabled PHP build (e.g. FrankenPHP).
  2. Install phpBolt-extension-1.0.7.
  3. Enable the extension via extension=bolt or extension=bolt.so.
  4. Start PHP.

Actual Result

PHP fails during startup with the following error:

Warning: PHP Startup: Unable to load dynamic library 'bolt'
(tried: /usr/local/lib/php/extensions/no-debug-zts-20250925/bolt.so
Error relocating bolt.so: compiler_globals: symbol not found)

Expected Result

The extension should either:

  • Provide a ZTS-compatible build, or
  • Clearly document that phpBolt only supports NON-ZTS PHP builds.

Analysis

  • FrankenPHP requires ZTS-enabled PHP due to its multi-threaded execution model.
  • The provided bolt.so binary appears to be compiled for NON-ZTS PHP.
  • ZTS and NON-ZTS extensions are binary-incompatible, resulting in unresolved symbols such as compiler_globals.

Questions

  • Does phpBolt officially support ZTS / thread-safe PHP builds?
  • Are there plans to provide ZTS-compatible binaries for PHP 8.4+ / 8.5?
  • If not, could this limitation be documented explicitly?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions