简介
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 系统
代码语言:javascript复制wget https://github.com/swoole/swoole-cli/releases/download/v5.1.3.0/swoole-cli-v5.1.3-linux-x64.tar.xz
Windows 系统
代码语言:javascript复制https://github.com/swoole/swoole-cli/releases/download/v5.1.3.0/swoole-cli-v5.1.3-cygwin-x64.zip
配置环境
代码语言:javascript复制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 SwooleHttpServer('127.0.0.1', 9501);
$http->on('start', function ($server) {
echo "Swoole http server is started at http://127.0.0.1:9501n";
});
$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
代码语言:javascript复制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:WorkermanEventsSelect
--------------------------------------------- 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.