关于PHP运行时提示swoole_loader扩展未安装的解决方案

方滴云WEB2023-07-13 23:07

日常工作中使用PHP的swoole与swoole_loader扩展已经越来越多了,不过关于swoole_loader扩展的安装,感觉就是看心情一样,心情好一下安装上了,心情不好闹个情绪,比如你多重装/重启下,它也能好。

不过今天晚上,它好像嗖我杠上了,怎么重装swoole或重装服务器都是无效的。无奈之下,只能好好‘哄“了啦,简单粗暴行不通了。

首先安装方法很简单,我们用是宝塔,直接在对应PHP版本管理中,安装swoole4.x,等安装完成后,复制或下载对应版本的swoole_loader.so就可以了。不过这个东西,用哪个文件,不要太随意,最好接指导来,当然这个地方我地骨皮我并没有弄明白。

但是这个问题好解决,下面我们来一步步发现问题,然后解决问题。我的php/版本是7.4的,我将对应的文件复制到/www/server/php/74/lib/php/extensions/no-debug-non-zts-20190902/目录后,就来通过宝塔提供的工具修改配置文件,操作就是在【swoole】配置下增加swoole_loader的配置文件,如下图所示。

之后,点击最上面的服务选择卡,再点击 “重载配置”就可以了。然后我们可以打开终端工具,通过命令:php -m 查看我们的拓展是否成功,如果出现下图所示,表明是OK的。

如果不有出现swoole_loader,那就是我们配置的有问题,或配置的文件有问题,为什么这说呢, 下面我们看最开始我那个安装不上的截图。

可惜了,图没存,唉,悲剧了,全文最重要的图,不过没有关系,大概就是报了这么个错误,Unable to load dynamic library “swoole_loader74_zts.so”,神奇之处在于,我无论怎么改配置,怎么重载、重启,甚至重启服务器都无效。

最近,我就去找配置文件看了下,在php-cli.ini中的最后一行就有这个配置,也不知道什么时候这个配置生效了,然后后面的配置改,就是压不上去,原因目前不明白。解决方法就很简单粗暴了。

这么改后,当然我也不放心的重载了配置,看到这里没有变化,于是再次在终端执行 php -m 后就出现了文中的第三图的情况了,没有报错了,swoole_loader也安装成功了。