问题显现

最近有个项目需要用到swoole,直接去官网按照教程

  https://wiki.swoole.com/zh-cn/#/environment?id=pecl 

顺利安装完成,
然后就是进去php.ini 添加 extension=swoole.so 就可以了(简单简单)
但使用php -m 查看是否安装成功却出现

 PHP Startup: Unable to load dynamic library 'swoole.so' (tried: /usr/lib/php/XXXXX/swoole.so (/usr/lib/php/XXXXX/swoole.so: undefined symbol.............

寻找对策

官网没告诉我这些怎么解决,去问文心一言,建议我重装(我…),后来查看了自己php配置文件并根据网上的解答,发现在配置目录下有一个conf.d的文件夹和php.ini的配置文件,扩展的配置基本都放在conf.d里面,但我在php.ini里面填写了extension=swoole.so,运行时,php会先加载php.ini的配置再去conf.d里面加载配置,结果swoole想要运行的扩展都没加载到,所以会出现underfined某个扩展的问题,即时你扩展已经装了,根据加载顺序的不同也会出现这错误

解决问题

既然知道是加载顺序导致问题出现,那就简单了,去conf.d里面新建一个swoole的配置文件,把extension=swoole.so 写进去,重新php -v ,OK,一切正常,又可以愉快的玩耍了

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐