PHP Warning:PHP Startup:Unable to load dynamic library ‘swoole.so’

记录一下,之前也没有这个问题,更新系统后突然出现的。

问题

PHP Warning: PHP Startup: Unable to load dynamic library 'swoole.so'

root@VM-0-7-ubuntu:~# php -m
PHP Warning:  PHP Startup: Unable to load dynamic library 'swoole.so' (tried: /usr/lib/php/20210902/swoole.so (/usr/lib/php/20210902/swoole.so: undefined symbol: curl_multi_ce), /usr/lib/php/20210902/swoole.so.so (/usr/lib/php/20210902/swoole.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

原因

php.ini 中配置扩展会优先于 conf.d 目录下配置文件加载,而swoole扩展依赖curl和socket扩展,因此需要在其后加载,因此不能在 php.ini 中添加 extension=swoole.so ,而是在 conf.d 目录中添加。

解决

在PHP的模块目录添加 swoole.ini

vim /etc/php/8.1/mods-available/swoole.ini

添加如下内容:

;configuration for php swoole module
;priority=20
extension=swoole.so

最后运行以下命令:

sudo phpenmod swoole

更简单的方法

不要通过 pecl install swoole 这个方式,直接安装php扩展就行: apt install php8.x-swoole (适用php8.1 和 8.2)。

0 0 投票数
文章评分
订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x
滚动至顶部