苏家心亮 发表于 2024-1-16 15:10:57

swoole运行报错cannot enable both hooks HOOK_NATIVE_CURL and HOOK_CURL

本帖最后由 苏家心亮 于 2024-1-16 16:45 编辑

面板、插件版本:
面板:8.0.1PHP:7.4.33
Swoole: 4.8.13   4.8.12
系统版本:
CentOS 7.9.2009 x86_64
问题描述:
运行报错:
Swoole\Runtime::enableCoroutine(): cannot enable both hooks HOOK_NATIVE_CURL and HOOK_CURL at same time
相关截图(日志、错误):
之前在其他服务器上运行相同的项目没有遇到这问题,排查发现是Swoole版本不同,之前的是4.8.12,新的是4.8.13
在论坛找到这帖:https://www.bt.cn/bbs/forum.php?mod=viewthread&tid=119218 按照帖子里的方法重新安装了4.8.12,运行后问题依旧;

仔细查看了下信息,虽然版本变成了4.8.12,但curl-native 还是启用状态
把swoole4.sh 中命令行
./configure --with-php-config=/www/server/php/$version/bin/php-config --enable-openssl --enable-sockets --enable-swoole-curl
里边的 --enable-swoole-curl删除,重新安装后发现又变成4.8.13了, 而且 curl-native 也是启用状态
反复重装几次还是这样子








苏家心亮 发表于 2024-1-16 16:43:38

看了下安装脚本,手动安装上了
下载后4.8.12安装包

tar -zxvf swoole-4.8.12.tgz
cd swoole-4.8.12/
/www/server/php/74/bin/phpize
./configure --with-php-config=/www/server/php/74/bin/php-config --enable-openssl --enable-sockets
make && make install
echo -e "\n\nextension = swoole.so\nswoole.use_shortname = off\n" >>/www/server/php/74/etc/php.ini

宝塔用户_jpixah 发表于 2025-4-26 21:58:21

遇到同样问题,你上面说的 --enable-swoole-curl删除,重新安装后发现又变成4.8.13了, 而且 curl-native 也是启用状态
反复重装几次还是这样子,这个问题的原因是每次卸载swoole的话,swoole4.sh文件会重写,版本号重写为4.8.13了,所以你每次安装的是4.8.13,。解决办法就是卸载了swoole后,把swoole4.sh里的版本号改为4.8.12.,删除--enable-swoole-curl,在执行安装就好了

宝塔用户_jpixah 发表于 2025-4-26 22:03:07

--enable-swoole-curl删除,重新安装后发现又变成4.8.13了, 而且 curl-native 也是启用状态。这个问题的原因是你每次卸载swoole4.sh文件重写了,版本号变成4.8.13了。正确做法是:卸载后把swoole4.sh文件里版本号该给12,删除 --enable-swoole-curl 执行安装命令,问题就解决了
页: [1]
查看完整版本: swoole运行报错cannot enable both hooks HOOK_NATIVE_CURL and HOOK_CURL