swoole的协程coroutine时遇到的配置问题

文章讲述了在使用Swoole协程时遇到go()方法未定义的问题,该问题通常由于swoole.use_shortname配置关闭导致。通过在php.ini和php-cli.ini文件中启用该配置或使用swoole_coroutine_create()函数可解决此问题。
摘要由CSDN通过智能技术生成

当使用swoole的coroutine时偶尔会遇到一些问题:

go()方法无法使用:

 Call to undefined function App\Controller\go() in /www/wwwroot/mix/src/Controller/Auth.php on line

报错的内容截图如下:
在这里插入图片描述
从以上报错看是没有go()方法,其实如果swoole正常安装的话,这个go()其实是存在的。
centos安装用pecl安装swoole的命令pecl install swoole

只是可能将swoole.use_shortname的参数在配置文件中关闭了 swoole.use_shortname=Off
将以上代码注释掉即可

[swoole]
extension = swoole.so
;swoole.use_shortname=Off

正常情况下,配置php.ini。重启php即可。但在宝塔面板中,按照以上配置后。

在这里插入图片描述
重启php后,查看phpinfo()正常,但依旧会报错:

 Call to undefined function go().....

在这里插入图片描述

最后多次排查下没问题,但发现文件 /www/server/php/80/etc/php-cli.ini 这个文件也需要修改,同样在末尾加上以下代码,重启php,发现可以正常使用!

extension = swoole.so
;swoole.use_shortname=Off

说明:

go方法:This function is an alias of function swoole_coroutine_create(); it's available only when directive"swoole.use_shortname" is not explicitly turned off.

如果关闭swoole的use_shortname时,可以使用go()代替方法swoole_coroutine_create(),否则go()方法不能正常使用,会报以上错误!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员D日常

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值