簡體   English   中英

ZeroMQ和PHP-FPM

[英]ZeroMQ and PHP-FPM

我剛剛遇到這樣的問題:在命令行中使用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服務器而不會出現問題。 如果我通過瀏覽器執行腳本,則沒有任何反應。

根據zeromq bug票證,這是一個已知問題,但他們無意修復它:

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

我也試過更改權限,如其他線程所示(並確認我在文件系統中查看時成功創建了0777),但zeromq沒有運氣:

UNIX域套接字無法跨用戶訪問?

我終於放棄了並使用了TCP。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM