安装 Swoole
Swoole 扩展是按照 PHP 标准扩展构建的。使用 phpize 来生成编译检测脚本,./configure 来做编译配置检测,make 进行编译,make install 进行安装。
安装准备
安装前必须保证系统已经安装了下列软件
快速安装
1. 下载 swoole 源码
2. 从源码编译安装
下载源代码包后,在终端进入源码目录,执行下面的命令进行编译和安装
ubuntu 没有安装 phpize 可执行命令:sudo apt-get install php-dev 来安装 phpize
cd swoole-src && \
phpize && \
./configure && \
sudo make && sudo make install
Copy to clipboardErrorCopied
3. 启用扩展
编译安装到系统成功后,需要在 php.ini 中加入一行 extension=swoole.so 来启用 Swoole 扩展
进阶完整编译示例
初次接触 Swoole 的开发者请先尝试上方的简单编译,如果有进一步的需要,可以根据具体的需求和版本,调整以下示例中的编译参数。编译参数参考
以下脚本会下载并编译 master 分支的源码,需保证你已安装所有依赖,否则会遇到各种依赖错误。
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 命令,一键下载安装
pecl install swoole
通过 PECL 安装 Swoole 时,在安装过程中它会询问是否要启用某些功能,这也可以在运行安装之前提供,例如:
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
或者
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 加入
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扩展安装成功。
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版本通常为极简版,只提供包管理器.
docker pull phpswoole/swoole:4.8-php7.3
运行容器:
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