ZeroMQ和PHP-FPM

时间:2015-07-13 15:46:16

标签: php nginx zeromq

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

服务器从命令行启动:

$context = new ZMQContext;
$socket = new ZMQSocket($context, ZMQ::SOCKET_PULL);
$socket->bind('ipc:///tmp/test.sock');
while (true) echo $socket->recv();

另一个脚本位于我的本地网络服务器上(nginx + php-fpm):

$context = new ZMQContext;
$socket = new ZMQSocket($context, ZMQ::SOCKET_PUSH);
$socket->connect('ipc:///tmp/test.sock');
$socket->send('Test Message');

如果从命令行执行此脚本,则消息将毫无问题地传输到zmq服务器。如果我通过浏览器执行脚本,则没有任何反应。

1 个答案:

答案 0 :(得分:0)

根据zeromq bug票证,这是一个已知问题,但他们无意修复它:

https://github.com/zeromq/libzmq/issues/48

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

UNIX domain sockets not accessable across users?

我终于放弃并使用了TCP。

相关问题