- 本文不针对 pecl 安装的 swoole,建议也不要使用这个方式安装,由于这种方式安装的 swoole 没法自定义编译选项
- 一个稳定的 PHP5 版本,虽然已经支持 PHP7 了,但彷佛还有暗坑,建议使用 PHP5.6
- 一个稳定的 swoole 版本,使用带有 stable 的版本,因为 swoole 还在不断完善中,每一个版本都会有 bug 的解决,因此请使用 2.0 如下的最新 stable 版本
Swoole 扩展编译失败,如何解决
- 笔者在此还未出现过编译失败的状况,因此没法收集,提供如下解决思路,欢迎留言
- 某些依赖未安装,如 openssl, libcompress 之类,按提示安装就好,swoole 提示可能不会很明显
- 权限问题,swoole 源码目录不要使用 windows 挂载的目录
如何查看是否已经安装成功
// 一般状况下,编译安装成功,swoole.so 会添加到默认扩展目录下,目录查看
/php-path/bin/php-config --extension-dir
// 此命令会输出 swoole 版本及默认配置,若是没有输出或者报错,则说明扩展仅仅编译成功,未启用
php --ri swoole
// 某些状况下,你的 php-fpm和php-cli使用的不是同一个php.ini
// php-fpm 查看php.ini配置路径,请使用phpinfo函数
// php-cli 查看 php.ini 配置路径
php --ini|grep "Loaded"
// 输出的路径若是和phpinfo中的路径一致,则表示使用的同一个php.ini,反之则不是,启用扩展时请选择正确的配置文件
扩展已经安装成功,但运行提示 'xxx' class not found
// 前提是你扩展安装并启用成功,也就是说你是经过命令行运行的文件
php filename.php
// 命令行下 swoole 已经启用
php --ri swoole
// 在输出注意输出中有一项 use_namespace,若是此项为1,则须要使用命令空间
// swoole_server => \Swoole\Server
// 在确认扩展启用无误的状况下,class not found 都是这个缘由形成的
服务端已经启动,客户端链接不上
- 请检查防火墙规则
- 若是使用的虚拟机,请检查端口映射是否已经添加
提示 SWOOLE_SSL 常量未定义
// 查看swoole编译选项 openssl 是否为 enable状态
php --ri swoole