Swoole 常见问题

 

  • 本文不针对 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
相关文章
相关标签/搜索