ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 简介 `Swoole-Cli` 是一个 PHP 的二进制发行版,集成了 `swoole`、`php 内核`、`php-cli`、`php-fpm `以及多个常用扩展。`Swoole-Cli` 是全部静态编译打包的,不依赖任何操作系统的 `so `动态链接库,具备非常好的移植性,可以在任意 `Linux` 系统之间复制,下载即可使用。 作为 PHP 开发者都应该知道 PHP 有两种运行模式:`php-fpm`和`php-cli`。那么在 Swoole 5.0 中将迎来一种新的运行模式:`swoole-cli`。 > Swoole将像`node.js`这样作为独立程序提供给用户,而不是作为PHP的一个扩展。 除此之外`swoole-cli`会尽可能地对`php-src`进行裁剪,移除一些不用的机制、模块、扩展、函数、类型、常量、代码,使得整个程序可以在几分钟之内编译完成。 ## 操作系统支持 `Swoole-Cli` 会提供 `Linux`、`macOS`、`Windows(Cygwin)` 3种操作系统的二进制包的支持。 ## 安装 ### 下载 Linux 系统 ~~~ wget https://github.com/swoole/swoole-cli/releases/download/v5.1.3.0/swoole-cli-v5.1.3-linux-x64.tar.xz ~~~ Windows 系统 ~~~ https://github.com/swoole/swoole-cli/releases/download/v5.1.3.0/swoole-cli-v5.1.3-cygwin-x64.zip ~~~ ### 配置环境 ~~~ tar -xf swoole-cli-v5.1.3-linux-x64.tar.xz chmod u+x swoole-cli sudo mv swoole-cli /usr/bin/swoole-cli ~~~ 查看版本号`swoole-cli -v` ~~~ swoole-cli -v Swoole 5.1.3 (cli) (built: Jun  7 2024 07:19:27) (NTS) ~~~ 查看已安装扩展`swoole-cli -m` ~~~ swoole-cli -m [PHP Modules] apcu bcmath bz2 Core ctype curl date dom ds exif fileinfo filter gd gmp hash iconv imagick inotify intl json libxml mbstring mongodb mysqli mysqlnd opcache openssl pcntl pcre PDO pdo_mysql Phar posix readline redis Reflection session SimpleXML soap sockets sodium SPL sqlite3 ssh2 standard swoole tokenizer xlswriter xml xmlreader xmlwriter xsl yaml Zend OPcache zip zlib [Zend Modules] Zend OPcache ~~~ ### 配置文件 `swoole-cli` 默认不加载任何 `php.ini` 配置文件。可通过 `-d` 参数来设置 `PHP` 选项或使用 `-c` 参数指定加载的`php.ini`配置文件。 ~~~ swoole-cli -d swoole.use_shortname=off bin/hyperf.php start swoole-cli -c /tmp/php.ini -v ~~~ ### 启动 PHP-FPM `swoole-cli` 集成了 `PHP-FPM` ,可使用 `-P` 命令来启动 `fpm` 。 ~~~ # 查看帮助文件 swoole-cli -P -h # 运行 FPM swoole-cli -P --fpm-config /opt/php-8.1/etc/php-fpm.conf -p /opt/php-8.1/var # 关闭守护进程 swoole-cli -P --fpm-config /opt/php-8.1/etc/php-fpm.conf -p /opt/php-8.1/var -F # 使用 root 账户启动 swoole-cli -P --fpm-config /opt/php-8.1/etc/php-fpm.conf -p /opt/php-8.1/var -F -R ~~~ ### 启动 Swoole Server `server.php`文件 ~~~ <?php $http = new Swoole\Http\Server('127.0.0.1', 9501); $http->on('start', function ($server) {     echo "Swoole http server is started at http://127.0.0.1:9501\n"; }); $http->on('request', function ($request, $response) {     $response->header('Content-Type', 'text/plain');     $response->end('Hello 开源技术小栈!'); }); $http->start(); ~~~ 通过`swoole-cli`启动 ~~~ swoole-cli server.php  Swoole http server is started at http://127.0.0.1:9501 ~~~ 通过`curl`访问 ~~~ curl http://127.0.0.1:9501 Hello 开源技术小栈! ~~~ ### 启动 webman ~~~ cd webman.tinywan.com swoole-cli start.php start Workerman[start.php] start in DEBUG mode -------------------------------------------- WORKERMAN -------------------------------------------- Workerman version:4.1.15          PHP version:8.1.27           Event-Loop:\Workerman\Events\Select --------------------------------------------- WORKERS --------------------------------------------- proto   user            worker          listen                 processes    status            tcp     www             webman          http://0.0.0.0:8787    8             [OK]             tcp     www             monitor         none                   1             [OK]             --------------------------------------------------------------------------------------------------- Press Ctrl+C to stop. Start success. ~~~