Skip to content

Latest commit

 

History

History
151 lines (108 loc) · 5.16 KB

README.md

File metadata and controls

151 lines (108 loc) · 5.16 KB

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

curl -fSL https://github.com/swoole/swoole-cli/blob/main/setup-swoole-cli-runtime.sh?raw=true | bash

# 来自 https://www.swoole.com/download
curl -fSL https://github.com/swoole/swoole-cli/blob/main/setup-swoole-cli-runtime.sh?raw=true | bash -s -- --mirror china

# 指定发布版本
curl -fSL https://github.com/swoole/swoole-cli/blob/main/setup-swoole-cli-runtime.sh?raw=true | bash -s -- --version  v5.1.6.0

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
# 来自 https://www.swoole.com/download
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 单词