README-en.md 5.3 KB

static-php-cli

Compile A Statically Linked PHP With Swoole and other Extensions.

BTW, It's only for CLI mode.

[version]()

Requirements

  • Tested on x86_64 and aarch64 platform, others have not tested.
  • Docker required (or alpine linux when I write single script file)
  • Supporting PHP version from 7.2 to 8.0

Start

You can directly download static binary in Release.

Here's help command to compile it yourself:

git clone https://github.com/crazywhalecc/static-php-cli.git
cd static-php-cli/docker
docker build -t static-php .

After compilation you can use command to get static php binary file:

mkdir dist
docker run --rm -v $(pwd)/dist:/dist/ -it static-php cp php-dist/bin/php /dist/
cd dist
file ./php

To customize PHP extensions, edit docker/extensions.txt file, and rules below:

  • Use # as comment, to mark not install
  • extensions name uses lower case, and default file contains all supported extensions, if u need other extensions, consider write an Issue

Supported PHP extensions

Support PHP Ext Name Version Comments
yes bcmath *
yes calendar *
yes ctype *
yes curl *
yes dom *
event
yes filter *
yes gd *
yes hash * PHP7.3 or older uses --enable-hash
yes iconv *
yes inotify 3.0.0
yes json *
yes libxml *
yes mbstring *
yes mongodb >=1.9.1 not tested
mysqli
yes mysqlnd *
yes openssl *
yes pcntl *
yes pdo *
yes pdo_mysql *
pdo_pgsql *
yes phar *
yes posix *
yes redis *
yes simplexml *
yes sockets *
yes swoole >=4.6.6 support mysqlnd, sockets, openssl, redis
yes tokenizer *
yes xml *
yes xmlreader *
yes xmlwriter *
zip
yes zlib *

Current Issue

  • Not support event(libevent), because of its config.m4 and code.
  • Swoole not support --enable-swoole-curl.
  • Not support readline, maybe caused by ncurses library.
  • [X] Not support curl (solved)
  • [X] Customize extensions to compile
  • php.ini integration
  • [X] i18n (including README and scripts)

Running preview

After-compile status

image

Run Workerman directly

image

References