jinligen / swoole-cli

SWOOLE-CLI is a php binary distribution composed swoole & php-core & cli & fpm and mostly of common extensions.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

swoole-cli

Swoole-Cli 是一个 PHP的二进制发行版,
集成了 swoolephp 内核php-cliphp-fpm以及多个常用扩展。
Swoole-Cli是全部静态编译打包的,不依赖任何操作系统的so 动态链接库,具备非常好的移植性,
可以在任意 Linux/macOS/Windows(CygWin)系统之间复制,下载即可使用。

作为 PHP 开发者都应该知道 PHP 有两种运行模式:php-fpm和php-cli,
那么在 Swoole 5.0 中将迎来一种新的运行模式:swoole-cli。
Swoole将像node.js这样作为独立程序提供给用户,而不是作为PHP的一个扩展。
除此之外swoole-cli会尽可能地对php-src进行裁剪,
移除一些不用的机制、模块、扩展、函数、类型、常量、代码,使得整个程序可以在几分钟之内编译完成。

相关文章

下载swoole-cli发行版

swoole-cli构建文档

Clone

git clone --recursive https://github.com/swoole/swoole-cli.git
git clone https://github.com/swoole/swoole-cli.git
git submodule update --init

快速准备 PHP 运行时

cd swoole-cli

bash setup-php-runtime.sh
# 或者
bash setup-php-runtime.sh --mirror china

生成构建脚本

composer install
php prepare.php
php prepare.php +inotify +mongodb -mysqli
  • 脚本会自动下载相关的C/C++库以及PECL扩展
  • 可使用+{ext}或者-{ext}增减扩展

进入 Docker Bash

./make.sh docker-bash

需要将 swoole-cli 的目录映射到容器的 /work 目录

构建 C/C++ 依赖库

./make.sh all-library

编译配置

./make.sh config

构建 swoole-cli

./make.sh build

编译成功后会生成bin/swoole-cli

打包

./make.sh archive

打包成功后会生成 swoole-cli-{version}-{os}-{arch}.tar.xz 压缩包,包含 swoole-cli 可执行文件、LICENSE 授权协议文件。

授权协议

  • swoole-cli 使用了多个其他开源项目,请认真阅读自动生成的 bin/LICENSE 文件中版权协议,遵守对应开源项目的 LICENSE
  • swoole-cli 本身的软件源代码、文档等内容以 Apache 2.0 LICENSE+SWOOLE-CLI LICENSE 作为双重授权协议,用户需要同时遵守 Apache 2.0 LICENSESWOOLE-CLI LICENSE 所规定的条款

SWOOLE-CLI LICENSE

  • swoole-cli 代码进行使用、修改、发布的新项目必须含有 SWOOLE-CLI LICENSE 的全部内容
  • 使用 swoole-cli 代码重新发布为新项目或者产品时,项目或产品名称不得包含 swoole 单词

About

SWOOLE-CLI is a php binary distribution composed swoole & php-core & cli & fpm and mostly of common extensions.


Languages

Language:C 75.8%Language:PHP 22.5%Language:C++ 0.3%Language:Shell 0.3%Language:M4 0.3%Language:Lua 0.3%Language:Assembly 0.2%Language:Lex 0.1%Language:Yacc 0.1%Language:JavaScript 0.0%Language:Roff 0.0%Language:GDB 0.0%Language:Makefile 0.0%Language:Perl 0.0%Language:XSLT 0.0%Language:Awk 0.0%Language:Batchfile 0.0%Language:DTrace 0.0%Language:Dockerfile 0.0%Language:HTML 0.0%Language:GAP 0.0%