CentOs 6, Php7.1, libevent, nginx returns 502



我正在将Laravel Web应用程序从PHP5.6升级到PHP7.1,这使我升级了Libevent模块。应用程序是基于React库的异步ANS。

所以我以安装结尾:php 7.1.12,libevent:2.1.8 expressif/pecl-event-libevent。而且我有稳定的" 502 Bad Gateway"来自nginx。没有libevent(ReactStreamloop)或php 5.6 libevent:1.4工作正常。请求土地index.php,稍后发生了一些事情,在开始应用程序内。

nginx日志:

2017/11/24 10:41:24 [错误] 24985#0: *7 recv()失败(104:连接重置peer的连接重置),从上游阅读响应标头,客户端:14.183.16.180,服务器,服务器:173.199.117.122,请求:" get/http/1.1",上游:;

2017/11/24 10:41:25 [错误] 24985#0: *7 recv()失败(104:连接由peer重置),读取上游响应标头,客户端:14.183.16.180,服务器:173.199.117.122,请求:" get/http/1.1",上游:;

php-fpm日志:

[24-NOV-2017 10:41:24]警告:[池www] signal 11(sigsegv)在39.486978秒后从START

>

[24-NOV-2017 10:41:24]注意:[池www]儿童22331开始

[24-NOV-2017 10:41:25]警告:[池www]儿童22301在Sign Sign 11(Sigsegv)上退出了40.205103秒后

[24-NOV-2017 10:41:25]注意:[池www]儿童22332开始

更新:如果强制使用ReactStreamloop。

更新:在类似的配置上本地复制。找到了与libeventloop崩溃但与streamSelectloop一起使用的示例。

require_once __DIR__.'/../vendor/autoload.php';
$loop = new ReactEventLoopLibEventLoop();
//$loop = new ReactEventLoopStreamSelectLoop();
$config = array(
    'host'      => '127.0.0.1',
    'port'      => '3306',
    'dbname'    => 'mysql',
    'user'      => 'root',
    'passwd'    => 'root',
    'charset'   => 'utf8',
);
$client = new ReactMySQLConnection($loop, $config);
$client->connect(function() {});
$client->query('select 8 as cnt', function () {
    echo "insiden";
});
echo "startn";
$loop->run();

输出:

#php ./tests/test.php 
start
Segmentation fault (core dumped)

所使用的扩展名与PHP 7及以上不兼容。您必须使用另一个事件循环实现之一,例如基于stream_select()或支持的扩展之一的实现。

有关更多信息

相关内容

  • 没有找到相关文章

最新更新