Swoole php module : undefined symbol: spl_ce_Countable 问题

Swoole php module : undefined symbol: spl_ce_Countable issue

我正在尝试在我的机器上安装 swoole

首先:

pecl install swoole

然后我需要一个php模块

cd swoole         
phpize             
./configure        
make               
sudo make install  

该脚本在我的文件夹中创建了一个 swoole.so,因此我将其添加到我的 php.ini 中:

extension=/usr/lib/php/20151012/swoole.so

当我尝试 php -v 时,我得到:

PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php/20151012/swoole.so'(已尝试:/usr/lib/php/20151012/swoole.so(/usr/lib/php/20151012/swoole。所以:未定义的符号:spl_ce_Countable), /usr/lib/php/20170718//usr/lib/php/20151012/swoole.so.so (/usr/lib/php/20170718//usr/lib/php/20151012/swoole.so.so: 无法打开共享对象文件:第 0 行未知中没有这样的文件或目录)) PHP 7.2.13-1+ubuntu16.04.1+deb.sury.org+1 (cli)(内置:2018 年 12 月 7 日 08:07:08)(NTS) 版权所有 (c) 1997-2018 PHP 集团 Zend Engine v3.2.0,版权所有 (c) 1998-2018 Zend Technologies 使用 Zend OPcache v7.2.13-1+ubuntu16.04.1+deb.sury.org+1,版权所有 (c) 1999-2018,Zend Technologies 使用 Xdebug v2.6.1,版权所有 (c) 2002-2018,Derick Rethans

这是什么错误:未定义的符号:spl_ce_Countable?

非常感谢。

我的机器上安装了几个 php 版本。但是 7.2 版没有 php-config 文件。

sudo apt-get install php7.2-dev

这解决了我的问题

感谢@ÁlvaroGonzález

大多数时候,当您尝试加载依赖于尚未加载或未启用的其他扩展的扩展时,会抛出此类错误。因此,建议通过phpenmod加载。一些 Linux 发行版,如 Debian 或 Ubuntu 使用 PHP mods-available 加载 PHP 扩展。

您可以在以下目录 /etc/php/<PHP_VERSION>/mods-available 中手动为扩展名 openswoole.ini 创建一个文件,其中包含以下数据

; Configuration for Open Swoole
; priority=30
extension=openswoole

或者您可以运行下面的命令,记得将<PHP_VERSION>更改为您的php版本

sudo bash -c "cat > /etc/php/<PHP_VERSION>/mods-available/openswoole.ini << EOF
; Configuration for Open Swoole
; priority=30
extension=openswoole
EOF"


sudo phpenmod -s cli openswoole


php -m | grep openswoole