【问题标题】:How can I use popen in PHP with Node.js/Socket.IO?如何在 PHP 中通过 Node.js/Socket.IO 使用 popen?
【发布时间】:2014-02-15 00:10:00
【问题描述】:

this Stack Overflow question,我意识到您可以使用popen 让进程作为后台进程在后台运行。

但是当我尝试这个时:

$daemon = popen('node nodeServer.js', 'r');
echo "Server started.\n";

它会坏掉,并给我很多与 Node.js 相关的错误。

这是为什么?当我在命令提示符下尝试node nodeServer.js 时,它工作正常。

这是我得到的错误:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: write EPIPE
    at errnoException (net.js:901:11)
    at Object.afterWrite (net.js:718:19)

谢谢。

【问题讨论】:

  • 如果您告诉我们这些错误是什么,将会很有帮助。节点是否在 PHP 打开的任何 shell 的路径中? PHP 是否有权运行该可执行文件?它是否有权读取该 .js 文件?您基本上没有提供任何有用的细节,在您提供之前,除了模糊的猜测,我们无能为力。
  • @MarcB 我更新了我的问题,请看一下。

标签: php node.js socket.io popen


【解决方案1】:

如果您只是想让您的节点服务器保持活跃,您可以使用 GNU Screen 让节点服务器进程保持运行。 (http://www.gnu.org/software/screen/)

您将能够关闭 SSH 终端并从不同的计算机/位置打开它,并能够重新连接到会话;无需停止服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-09-26
    • 1970-01-01
    • 1970-01-01
    • 2013-05-05
    • 2018-10-20
    • 2015-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多