Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ZeroMQ和PHP-FPM_Php_Nginx_Zeromq - Fatal编程技术网

ZeroMQ和PHP-FPM

ZeroMQ和PHP-FPM,php,nginx,zeromq,Php,Nginx,Zeromq,我刚刚遇到一个问题,PHP中的ZeroMQ在命令行上使用时似乎可以正常工作,但在FPM进程中却不能正常工作。还有其他人观察到这种行为吗?有简单的解决办法吗?也许这是一个权利管理的问题还是什么?不幸的是,根本没有错误消息 服务器是从命令行启动的: $context = new ZMQContext; $socket = new ZMQSocket($context, ZMQ::SOCKET_PULL); $socket->bind('ipc:///tmp/test.sock'); whil

我刚刚遇到一个问题,PHP中的ZeroMQ在命令行上使用时似乎可以正常工作,但在FPM进程中却不能正常工作。还有其他人观察到这种行为吗?有简单的解决办法吗?也许这是一个权利管理的问题还是什么?不幸的是,根本没有错误消息


服务器是从命令行启动的:

$context = new ZMQContext;
$socket = new ZMQSocket($context, ZMQ::SOCKET_PULL);
$socket->bind('ipc:///tmp/test.sock');
while (true) echo $socket->recv();
另一个脚本位于我的本地Web服务器(nginx+php-fpm)上:


如果从命令行执行此脚本,消息将毫无问题地传输到zmq服务器。如果我通过浏览器执行脚本,什么也不会发生。

根据zeromq错误记录,这是一个已知的问题,但他们无意修复它:

我还尝试更改权限,如其他线程所示(并确认在文件系统中查看时,我已成功将其创建为0777),但zeromq没有成功:


我也最终放弃了使用TCP。

文件
/tmp/test.sock
的权限是什么?已经设置为0777…更新:现在刚刚尝试使用TCP,它就工作了。但是,我想知道IPC问题是关于什么的。我只有在apache用户无法写入套接字文件时才有这个问题,apache拥有的
700
可以工作。你有什么东西可以挡住它吗?例如selinux?我也有同样的问题,尽管我使用的是IP地址而不是.sock文件。你有没有做过什么特别的事情来帮助它在浏览器中工作?谢谢
$context = new ZMQContext;
$socket = new ZMQSocket($context, ZMQ::SOCKET_PUSH);
$socket->connect('ipc:///tmp/test.sock');
$socket->send('Test Message');