【发布时间】:2017-10-26 00:28:15
【问题描述】:
所以一开始我正在构建一个与网站前端一起工作的 NodeJS 应用程序。这是构建的,我想要的是通过 PHP 启动它。因此,您可以单击保存,然后在需要时启动它。
该应用程序是一个 websocket 服务器,将侦听 websocket 并处理来自客户端(我网站的前端)的数据/命令。
现在我用来启动它的代码如下:
$command = '/usr/local/bin/node main.js & echo $!';
$processid = shell_exec($command);
但由于某种原因,当我在前端单击保存时,它只是挂起并继续加载......但页面上什么也没显示?它创建了我可以看到的过程:
lsof -i tcp:8000
只有当我终止节点正在运行的进程时,页面才会停止加载...
我正在使用:
kill -9 <pid>
杀死它。所以我有点迷茫为什么它没有在后台运行它然后完成 PHP 脚本......它只是挂在上面?
任何帮助将不胜感激。
请注意,这一切都可以从命令行运行,因此该文件是一个单独的启动器类,如果我通过 php 运行它并添加一些代码来执行它可以工作的任务,只有当我调用它时我还有什么问题吗?
如果有帮助的话;该网站使用的框架是 Joomla 3.x,在此先感谢。
我在 MacBook Air El Capitan 上, 还需要在 Linux CentOS 上工作
【问题讨论】:
标签: php node.js websocket frontend shell-exec