先来了解下swoole:Swoole是:PHP语言的高性能网络通信框架,提供了PHP语言的异步多线程服务器,处理异步任务,异步TCP/UDP网络客户端,异步MySQL,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询。 Swoole虽然是标准的PHP扩展,实际上与普通的扩展不同。普通的扩展只是提供一个库函数。而swoole扩展在运行后会接管PHP的控制权,进入事件循环。当IO事件发生后,swoole会自动回调指定的PHP函数。
安装遇到的问题首先确定php版本要求大于php7.1 而centos7yum默认安装的是php5所以不能直接用yum安装php及其扩展需要先更新对应yum源参考https://blog.csdn.net/weixin_43025071/article/details/107345127
执行命令:
yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel php72w-pear php72w-devel
安装成功之后执行命令:
pecl install swoole
提示错误:ERROR: unable to unpack /tmp/pear/download/swoole-4.5.2.tgz
解决方法:
pecl channel-update pecl.php.net
如果还有报错检查 /tmp/pear/download/目录有没有权限
执行:
chmod 777 -R /tmp/pear/download
再重新执行安装命令即可
安装的时候会问你yes/no之类的选项,根据自己需求,如果不知道什么用途可以都直接enter就可以了
enable sockets supports? [no] : 启用套接字支持?[否]
enable openssl support? [no] : 启用OpenSSL支持?[否]
enable http2 support? [no] : 启用HTTP2支持?[否]
enable mysqlnd support? [no] : 启用mysqlnd支持?[否]
enable postgresql coroutine client support? [no] : 启用PostgreSQL协程客户端支持?[否]
安装成功提示:
Build process completed successfully
Installing '/usr/lib64/php/modules/swoole.so'
Installing '/usr/include/php/ext/swoole/config.h'
install ok: channel://pecl.php.net/swoole-4.5.2
configuration option "php_ini" is not set to php.ini location
You should add "extension=swoole.so" to php.ini
注意安装成功提示的最后一句话:你需要在php.ini里面添加extension=swoole.so使php支持swoole扩展
查找php.ini的位置
[root@aaaa home]# php -i|grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
编辑php.ini添加扩展
extension="swoole.so"
重启php
systemctl restart php-fpm.service
查看swoole扩展是否安装成功
[root@baicells home]# php -m |grep swoole
swoole
到此swoole安装完毕
测试先关闭防火墙!!!