当前位置:  首页>> 技术小册>> 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 源码

2. 从源码编译安装

下载源代码包后,在终端进入源码目录,执行下面的命令进行编译和安装

ubuntu 没有安装 phpize 可执行命令:sudo apt-get install php-dev 来安装 phpize

  1. cd swoole-src && \
  2. phpize && \
  3. ./configure && \
  4. sudo make && sudo make install
  5. Copy to clipboardErrorCopied

3. 启用扩展

编译安装到系统成功后,需要在 php.ini 中加入一行 extension=swoole.so 来启用 Swoole 扩展

进阶完整编译示例
初次接触 Swoole 的开发者请先尝试上方的简单编译,如果有进一步的需要,可以根据具体的需求和版本,调整以下示例中的编译参数。编译参数参考

以下脚本会下载并编译 master 分支的源码,需保证你已安装所有依赖,否则会遇到各种依赖错误。

  1. mkdir -p ~/build && \
  2. cd ~/build && \
  3. rm -rf ./swoole-src && \
  4. curl -o ./tmp/swoole.tar.gz https://github.com/swoole/swoole-src/archive/master.tar.gz -L && \
  5. tar zxvf ./tmp/swoole.tar.gz && \
  6. mv swoole-src* swoole-src && \
  7. cd swoole-src && \
  8. phpize && \
  9. ./configure \
  10. --enable-openssl --enable-sockets --enable-mysqlnd --enable-swoole-curl --enable-cares --enable-swoole-pgsql && \
  11. sudo make && sudo make install

PECL

注意: PECL 发布时间晚于 GitHub 发布时间

Swoole 项目已收录到 PHP 官方扩展库,除了手动下载编译外,还可以通过 PHP 官方提供的 pecl 命令,一键下载安装

  1. pecl install swoole

通过 PECL 安装 Swoole 时,在安装过程中它会询问是否要启用某些功能,这也可以在运行安装之前提供,例如:

  1. 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

或者

  1. 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 加入

  1. extension=swoole.so
  2. Copy to clipboardErrorCopied

通过 php -m 来查看是否成功加载了 swoole.so,如果没有可能是 php.ini 的路径不对。
可以使用 php —ini 来定位到 php.ini 的绝对路径,Loaded Configuration File 一项显示的是加载的 php.ini 文件,如果值为 none 证明根本没加载任何 php.ini 文件,需要自己创建。

示例
使用php -m命令,查看到类似如下输出,代表swoole扩展安装成功。

  1. root@304ed074bf34:/var/www/html# php -m | grep swoole
  2. 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版本通常为极简版,只提供包管理器.

  1. docker pull phpswoole/swoole:4.8-php7.3

运行容器:

  1. docker run -itd -p 9090:9090 -p 9091:9091 -p 9092:9092 -p 9093:9093 -p 9094:9094 -p 9095:9095 \
  2. --name swoole48 -v /home/u1/swoole/4.8/www:/var/www phpswoole/swoole:4.8-php7.3

该分类下的相关小册推荐: