PHP二进制 Swoole-Cli 了解一下

开发 前端
作为 PHP 开发者都应该知道 PHP 有两种运行模式:php-fpm和php-cli​。那么在 Swoole 5.0 中将迎来一种新的运行模式:swoole-cli。Swoole将像node.js这样作为独立程序提供给用户,而不是作为PHP的一个扩展。

简介

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.

责任编辑:武晓燕 来源: 开源技术小栈
相关推荐

2009-12-10 09:24:50

PHP函数fwrite

2009-02-27 09:37:33

Google二进制代码

2022-10-31 08:02:42

二进制计算乘法

2018-10-22 14:37:16

二进制数据存储

2011-12-31 09:31:57

Web

2011-12-31 11:22:50

Web新世界

2009-08-12 18:06:53

C#读取二进制文件

2010-06-09 13:02:29

MySQL启用二进制日

2010-10-13 15:45:23

MySQL二进制日志

2009-12-16 10:49:42

Ruby操作二进制文件

2017-04-11 10:48:53

JS二进制

2022-07-26 13:00:01

安全符号源代码

2024-01-31 09:55:53

2023-09-18 23:50:25

二进制文件裁剪Layout

2020-06-15 17:05:46

前端二进制浏览器

2021-01-14 09:40:54

漏洞macOS属性表文件

2022-07-18 09:01:15

SwiftApple二进制目标

2013-07-29 11:19:16

iOS开发iOS开发学习FMDB更新二进制图片

2024-02-01 09:04:12

2013-04-28 15:37:35

JBoss
点赞
收藏

51CTO技术栈公众号