Skip to content

manticoresoftware/executor

Repository files navigation

Manticore Executor

What is it?

Manticore Executor is a custom built PHP binary which:

  • includes everything needed for Manticore supplementary tools (e.g. backup) to run successfully
  • doesn't include anything else which makes it very light and fast to install

Supported OS

OS Architecture Availability
Centos 7 arm64, x86_64 ✅ repo.manticoresearch.com
Centos 8 arm64, x86_64 ✅ repo.manticoresearch.com
Ubuntu Xenial arm64, x86_64 ✅ repo.manticoresearch.com
Ubuntu Bionic arm64, x86_64 ✅ repo.manticoresearch.com
Ubuntu Focal arm64, x86_64 ✅ repo.manticoresearch.com
Ubuntu Jammy arm64, x86_64 ✅ repo.manticoresearch.com
Debian Stretch arm64, x86_64 ✅ repo.manticoresearch.com
Debian Buster arm64, x86_64 ✅ repo.manticoresearch.com
Debian Bullseye arm64, x86_64 ✅ repo.manticoresearch.com
MacOS x86_64 ✅ repo.manticoresearch.com, homebrew custom tap
MacOS arm64 ✅ homebrew custom tap
Windows x86_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:

  • pcntl
  • posix
  • pcre (JIT)
  • zstd
  • parallel
  • openssl
  • zlib
  • mbstring

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:

  • build-linux
  • build-osx

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.