Home

Awesome

Manticore Executor

What is it?

Manticore Executor is a custom built PHP binary which:

Supported OS

OSArchitectureAvailability
Centos 7arm64, x86_64✅ repo.manticoresearch.com
Centos 8arm64, x86_64✅ repo.manticoresearch.com
Ubuntu Xenialarm64, x86_64✅ repo.manticoresearch.com
Ubuntu Bionicarm64, x86_64✅ repo.manticoresearch.com
Ubuntu Focalarm64, x86_64✅ repo.manticoresearch.com
Ubuntu Jammyarm64, x86_64✅ repo.manticoresearch.com
Debian Stretcharm64, x86_64✅ repo.manticoresearch.com
Debian Busterarm64, x86_64✅ repo.manticoresearch.com
Debian Bullseyearm64, x86_64✅ repo.manticoresearch.com
MacOSx86_64✅ repo.manticoresearch.com, homebrew custom tap
MacOSarm64✅ homebrew custom tap
Windowsx86_64✅ repo.manticoresearch.com

Extensions supported by the executor

By default, we disable all extensions and enable only those required to run our scripts.

We build executor from PHP 8.3.4 with the following extensions enabled and compiled into the executable statically:

Build from source

The process of building the executor from source is simple and requires the same build tools needed to build PHP.

To find out the instructions on building, you can check .github/workflow/release.yml and related scripts with names like build-%platform%.

Known issues

Unverified developer on MacOS

When you try to run the executor on MacOS, you will probably get an error from the system that the binary you run has an unverified developer.

This is because OSX marks binaries downloaded from the Internet from an unknown developer (not signed) with a quarantine flag.

You should remove that quarantine flag and run the binary to fix this issue. Just open your terminal, navigate to the folder where you have downloaded binary and paste this line.

xattr -dr com.apple.quarantine manticore-executor

Deployment

  1. The GitHub actions workflow prepares packages/binaries for

    • Centos 7/8 x86_64 and arm64
    • Ubuntu Xenial/Bionic/Focal/Jammy x86_64 and arm64
    • Debian Stretch/Buster/Bullseye x86_64 and arm64
    • MacOS x86_64 and arm64
  2. The same workflow deploys the packages to repositories

  3. What's to be done manually after the above is:

How to build manually

Several scripts used to build the final package:

The scripts accept a version of PHP as a parameter. The current version is 8.3.4. To build the binary, you should run the following example:

./build-linux "8.3.4"

The command above will build the package on Linux with PHP 8.3.4. Once it's done, you can find your binary in folder dist/bin.