坑1:使用laravelS依赖的时候 出现一个问题就是想经过php建立websocket客户端 php
思路就是先建立http客户端 以后经过upgrade升级成websocket链接laravel
可是在第一部过程当中 出现一个问题git
右边红色部分显示 这个class未找到github
解决方法1: 下降swoole扩展的版本 推荐使用https://pecl.php.net/get/swoole-1.10.5.tgzweb
而后安装步骤跟初次安装swoole同样 若是出现 make && make install 失败的话 进行 make clean redis
以后再次执行 make && make installwebsocket
可是方法1使用低版本会面临 再也不维护的风险swoole
解决方法2:推荐采用 下载swoole的异步库 ext-async异步
须要注意的是 假设swoole的版本是4.4.4 (经过 php --ri swoole 可查看)socket
那么安装的ext-async的版本也要4.4.4 搭配使用
安装步骤以下:
1. wget https://github.com/swoole/ext-async/archive/v4.4.6.zip
2. 解压 uzip v4.4.6.zip
3. cd ext-async
4. phpize
5. ./configure --with-php-config=PATH (PATH指php-config的具体路径)
6. make -j 4
7. make install
坑2:卸载编译安装的swoole
个人swoole是经过wget下载以后 进行编译安装 可是遇过一个状况 就是想把swoole的版本切换成其余版本的时候 进行覆盖安装会出现失败的可能
那么咱们就采起把当前的swoole卸载掉 以后 从新安装咱们要的版本
步骤以下:
1.找到环境中的php.ini文件
find / -name php.ini
2.编辑文件 找到extension=swoole.so的那一行 注释掉
3.查找swoole.ini文件 能够经过以下命令获取具体路径
php --ini
4.根据显示的位置 删掉swoole.ini
5.测试是否删除成功 没有出现swoole的信息就表示卸载成功 就能够进行愉快的下载安装了!
//查看swoole版本
php --ri swoole
坑3:在使用swoole过程当中 须要手写一个关于redis的服务
这个redis的服务 是须要环境中的swoole 开启 async-redis
此时 经过命令:php --ri swoole 看到并无开启以上的这个配置
那么有两种方法 一种是将环境中的swoole卸载 第二种就是将环境中的swoole从新编译安装
这里使用的是第二种方法 卸载的方法 本文的上面已经提过
1.定位到swoole的安装位置
cd /usr/local/src/swoole-4.4.6
2.执行编译安装的命令 也就是在这里进行开启上述说的到redis配置
phpize
#/www/server/php/72/bin/php-config 这个是环境中的php-config的位置
./configure --with-php-config=/www/server/php/72/bin/php-config --enable-async-redis
3.以后执行
make -j
make clean
make install4.以后执行再次执行 php --ri swoole 若是成功 能够看到 相似于以下图所示的配置