2

我正在尝试在我的机器上安装 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.so:未定义符号: 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 Group Zend Engine v3.2.0, 版权所有 (c) 1998-2018 Zend Technologies with 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?

非常感谢。

4

2 回答 2

1

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

sudo apt-get install php7.2-dev

这解决了我的问题

感谢@Álvaro González

于 2019-01-10T12:15:15.863 回答
0

大多数情况下,当您尝试加载依赖于尚未加载或未启用的其他扩展的扩展时,会引发此类错误。因此,建议通过 加载它phpenmod。一些 Linux 发行版(如 Debian 或 Ubuntu)使用 PHPmods-available来加载 PHP 扩展。

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

; 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
于 2022-01-25T18:43:21.100 回答