首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
Swoole简介
Swoole安装
TCP服务器
UDP服务器
HTTP服务器
WebSocket服务器
初探协程
协程与异步基础
Swoole核心概念基础
服务端(异步)
TCP/UDP服务器
方法
__construct
set
on
addListener、listen
addProcess
start
reload
stop、shutdown
tick、after、clearTimer
defer、close
send、sendfile、sendto...
exit、pause、resume
getXXX方法
bind、stats
task相关方法
其它方法补充
属性
配置
reactor_num
worker_num
max_request
max_conn
message_queue_key
daemonize
open_tcp_keepalive
heartbeat_check_interval
heartbeat_idle_time
open_tcp_nodelay
open_cpu_affinity
cpu_affinity_ignore
tcp_defer_accept
log相关配置
ssl相关配置
task相关配置
protocol相关配置
package相关配置
user、group
chroot、pid_file
buffer相关配置
enable_unsafe_event
discard_timeout_request
enable_reuse_port
enable_delay_receive
reload_async
max_wait_time
tcp_fastopen
request_slowlog_file
enable_coroutine
max_coroutine/max_coro_num
send_yield
send_timeout
hook_flags
tcp_user_timeout
stats_file
event_object
start_session_id
single_thread
max_queued_bytes
admin_server
事件和回调
Swoole\Server子类
Swoole\Server\Task
Swoole\Server\Packet
Swoole\Server\PipeMessage
Swoole\Server\StatusInfo
Swoole\Server\TaskResult
Swoole\Server\Event
HTTP服务器
Request类
header()
server()
get()
post()
cookie()
files()
getContent()
getData()
create()
parse()
isCompleted()
getMethod()
Response类
header()
trailer()
cookie()
status()
redirect()
write()
sendfile()
end
detach
create()
isWritable()
配置选项
WebSocket服务器
事件
onBeforeHandshakeResponse
onHandShake
onOpen
onMessage
onRequest
onDisconnect
方法
push()
exist()
pack()
unpack()
disconnect()
isEstablished()
数据帧帧类
Frame类
CloseFrame类
常量
选项
Redis服务器
多端口监听
服务端(协程)
TCP 服务器
HTTP 服务器
WebScoket 服务器
客户端
同步阻塞客户端
完整示例
方法
属性
常量
配置
一键协程化
方法
setHookFlags()
getHookFlags()
SWOOLE_HOOK_ALL
SWOOLE_HOOK_TCP
SWOOLE_HOOK_UNIX
SWOOLE_HOOK_UDP
SWOOLE_HOOK_UDG
SWOOLE_HOOK_SSL
SWOOLE_HOOK_TLS
SWOOLE_HOOK_SLEEP
SWOOLE_HOOK_FILE
SWOOLE_HOOK_STREAM_FUNCTION
SWOOLE_HOOK_BLOCKING_FUNCTION
SWOOLE_HOOK_PROC
SWOOLE_HOOK_CURL
SWOOLE_HOOK_NATIVE_CURL
SWOOLE_HOOK_SOCKETS
SWOOLE_HOOK_STDIO
Hook列表
协程客户端
TCP/UDP 客户端
Socket客户端
方法
__construct()
getOption()
setOption()
setProtocol()
bind()
listen()
accept()
connect()
checkLiveness()
send()
sendAll()
peek()
recv()
recvAll()
readVector()
readVectorAll()
writeVector()
writeVectorAll()
recvPacket()
recvLine()
recvWithBuffer()
recvfrom()
sendto()
getsockname()
getpeername()
close()
isClosed()
常量
HTTP/WebSocket客户端
方法
__construct()
set()
setMethod()
setHeaders()
setCookies()
setData()
addFile()
addData()
get()
post()
upgrade()
push()
recv()
download()
getCookies()
getHeaders()
getStatusCode()
getBody()
close()
execute()
函数
当前位置:
首页>>
技术小册>>
PHP高性能框架-Swoole
小册名称:PHP高性能框架-Swoole
**安装 Swoole** Swoole 扩展是按照 PHP 标准扩展构建的。使用 phpize 来生成编译检测脚本,./configure 来做编译配置检测,make 进行编译,make install 进行安装。 - 如无特殊需求,请务必编译安装 Swoole 的最新 Swoole5.0.2 版本或 Swoole4.8.13。 - 如果当前用户不是 root,可能没有 PHP 安装目录的写权限,安装时需要 sudo 或者 su。 - 如果是在 git 分支上直接 git pull 更新代码,重新编译前务必要执行 make clean。 - 仅支持 Linux(2.3.32 以上内核)、FreeBSD、MacOS 三种操作系统。 - 低版本 Linux 系统(如 CentOS 6)可以使用 RedHat 提供的 devtools 编译,参考文档 。 **安装准备** 安装前必须保证系统已经安装了下列软件 - 4.8 版本需要 php-7.2 或更高版本 - 5.0 版本需要 php-8.0 或更高版本 - gcc-4.8 或更高版本 - make - autoconf **快速安装** **1. 下载 swoole 源码** - https://github.com/swoole/swoole-src/releases - https://pecl.php.net/package/swoole - https://gitee.com/swoole/swoole/tags **2. 从源码编译安装** 下载源代码包后,在终端进入源码目录,执行下面的命令进行编译和安装 ubuntu 没有安装 phpize 可执行命令:sudo apt-get install php-dev 来安装 phpize ```asp cd swoole-src && \ phpize && \ ./configure && \ sudo make && sudo make install Copy to clipboardErrorCopied ``` **3. 启用扩展** 编译安装到系统成功后,需要在 php.ini 中加入一行 extension=swoole.so 来启用 Swoole 扩展 **进阶完整编译示例** 初次接触 Swoole 的开发者请先尝试上方的简单编译,如果有进一步的需要,可以根据具体的需求和版本,调整以下示例中的编译参数。编译参数参考 以下脚本会下载并编译 master 分支的源码,需保证你已安装所有依赖,否则会遇到各种依赖错误。 ```asp mkdir -p ~/build && \ cd ~/build && \ rm -rf ./swoole-src && \ curl -o ./tmp/swoole.tar.gz https://github.com/swoole/swoole-src/archive/master.tar.gz -L && \ tar zxvf ./tmp/swoole.tar.gz && \ mv swoole-src* swoole-src && \ cd swoole-src && \ phpize && \ ./configure \ --enable-openssl --enable-sockets --enable-mysqlnd --enable-swoole-curl --enable-cares --enable-swoole-pgsql && \ sudo make && sudo make install ``` **PECL** > 注意: PECL 发布时间晚于 GitHub 发布时间 Swoole 项目已收录到 PHP 官方扩展库,除了手动下载编译外,还可以通过 PHP 官方提供的 pecl 命令,一键下载安装 ```asp pecl install swoole ``` 通过 PECL 安装 Swoole 时,在安装过程中它会询问是否要启用某些功能,这也可以在运行安装之前提供,例如: ```asp pecl install -D 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-swoole-json="no" enable-swoole-curl="yes" enable-cares="yes"' swoole ``` **或者** ```asp pecl install --configureoptions 'enable-sockets="no" enable-openssl="yes" enable-http2="yes" enable-mysqlnd="yes" enable-swoole-json="no" enable-swoole-curl="yes" enable-cares="yes"' swoole ``` 添加 Swoole 到 php.ini 最后,编译安装成功后,修改 php.ini 加入 ```asp extension=swoole.so Copy to clipboardErrorCopied ``` 通过 php -m 来查看是否成功加载了 swoole.so,如果没有可能是 php.ini 的路径不对。 可以使用 php --ini 来定位到 php.ini 的绝对路径,Loaded Configuration File 一项显示的是加载的 php.ini 文件,如果值为 none 证明根本没加载任何 php.ini 文件,需要自己创建。 **示例** 使用php -m命令,查看到类似如下输出,代表swoole扩展安装成功。 ```asp root@304ed074bf34:/var/www/html# php -m | grep swoole swoole ``` **使用Docker创建swoole容器:** 示例: 我们这里以swoole4.8-php7.3镜像为例,也可以拉取swoole5.x+php8.0版本 tag: phpswoole/swoole:4.8-php7.3 **拉镜像:** 注意,不要拉alpine版本,如,4.8-php7.3-alpine,无法登录到容器。 alpine版本通常为极简版,只提供包管理器. ```asp docker pull phpswoole/swoole:4.8-php7.3 ``` **运行容器:** ```asp docker run -itd -p 9090:9090 -p 9091:9091 -p 9092:9092 -p 9093:9093 -p 9094:9094 -p 9095:9095 \ --name swoole48 -v /home/u1/swoole/4.8/www:/var/www phpswoole/swoole:4.8-php7.3 ```
上一篇:
Swoole简介
下一篇:
TCP服务器
该分类下的相关小册推荐:
Yii2框架从入门到精通(下)
Laravel(10.x)从入门到精通(三)
PHP程序员面试算法宝典
Laravel(10.x)从入门到精通(十五)
PHP合辑2-高级进阶
Swoole高性能框架-SwooleWorker
剑指PHP(从入门到进阶)
Magento零基础到架构师(安装篇)
Laravel(10.x)从入门到精通(十三)
PHP程序员的设计模式
PHP8实战小册
Laravel(10.x)从入门到精通(十八)