Ubuntu20.04+PHP7.4环境安装Swoole php-cp报错如何解决
问题说明
编译swoole/php-cp扩展时触发安装报错,当前运行环境:
- 操作系统:Ubuntu 20.04
- PHP版本:7.4
报错根因是扩展原生源码未适配PHP7.4版本的内核API变更,编译过程直接中断。
修复步骤
- 安装编译依赖
sudo apt update sudo apt install -y php7.4-dev gcc make autoconf libmysqlclient-dev php7.4-mysqlnd
必须安装PHP7.4对应的dev开发包,避免多版本PHP头文件混用导致的版本不匹配问题。
- 修改源码适配PHP7.4
进入扩展源码目录,修正两处不兼容代码:
- 打开
php7/connect_pool.c文件,定位所有php_url_parse函数调用,删除手动传入的字符串长度入参。PHP7.4版本的该函数已自动处理入参长度,无需额外传参; - 同文件内全局搜索
ZEND_ACC_USE_GUARDS宏相关的判断逻辑,直接删除该段判断即可。PHP7.4已移除该宏定义,相关对象守卫逻辑由内核自动处理,无需手动判断。
- 重新执行编译流程
phpize7.4 ./configure --with-php-config=/usr/bin/php-config7.4 --with-mysqlnd=yes make clean make -j$(nproc) sudo make install
configure阶段加--with-mysqlnd=yes强制使用PHP内置mysqlnd驱动,避免和系统libmysqlclient产生符号冲突。
- 验证安装
在对应php.ini配置文件中追加extension=connect_pool.so,执行命令php -m | grep connect_pool,输出扩展名称即代表安装加载成功。
内容的提问来源于stack exchange,提问作者Tilon UZ
相关产品推荐
相关产品推荐

