GatewayWorker 在php7.2.29启动一直报错
GatewayWorker 在php7.2.29下启动一直报如下错误,在同服务器下用php5.6.31下正常启动
发现只是start_gateway 方法不能启动,单独可以启动另外BusinessWorker和Register
php版本分别如下
详细的报错内容如下
[27-Apr-2021 23:08:19 Asia/Shanghai] PHP Fatal error: Uncaught Exception: Address already in use in /data/wwwroot/Gateway/vendor/workerman/workerman/Worker.php:2257
Stack trace:
0 /data/wwwroot/Gateway/vendor/workerman/workerman/Worker.php(1538): Workerman\Worker->listen()
1 /data/wwwroot/Gateway/vendor/workerman/workerman/Worker.php(1385): Workerman\Worker::forkOneWorkerForLinux(Object(GatewayWorker\Gateway))
2 /data/wwwroot/Gateway/vendor/workerman/workerman/Worker.php(1359): Workerman\Worker::forkWorkersForLinux()
3 /data/wwwroot/Gateway/vendor/workerman/workerman/Worker.php(542): Workerman\Worker::forkWorkers()
4 /data/wwwroot/Gateway/start.php(40): Workerman\Worker::runAll()
5 {main}
thrown in /data/wwwroot/Gateway/vendor/workerman/workerman/Worker.php on line 2257
2个回答
年代过于久远,无法发表回答
报错不是很明显,端口占用啊!!!
这个只在php72版本下出现,php56版本下完全正常启动,应该不完全是端口占用引起的,我查了启动前该端口未被占用,报错后也未被占用
@7967:我也是用7.2啊
看到7.2我要回下,当时把我坑惨了, 用的宝塔安装的7.2,用来运行 workerman 执行任务的,当时,一开启就报了个错,具体的错误现在不记得了, 当时查了,别人给出的回复是里面用了什么不稳定或者有bug的扩展,但是我当时肯定是没有安装有的,全部是安装自带的,确实不知道怎么解决,当时就重复关闭开启搞了几次,还别说,后面开启真没报错了,然后我当时就安心等任务执行.
等了几分钟吧,当时任务代码一执行就报了个数据库的错误,(代码肯定没问题的,线下执行正常,后面换回7.1也是正常的),这个错误自然也没法解决,代码里原本是写了事务的,正常的话执行出错理应回滚的,所以出错了我也没去查数据库数据是否有变动,结果过了5分钟(这时我是在查资料为什么会出现那个数据库错误的),客户打电话过来直接我数据出错了......,后面没办法,只能舍弃掉那段时间的数据重新恢复前面备份的. 当然,7.2我肯定是没用了,包括后面我部署workerman,也从来不下载7.2的,亲身经历,没有瞎写,至于当时用7.2为什么会出错我无法回答,但是问题肯定是出在那个php版本里,后面我换7.1从来没出现过那种奇葩错误.