Php 跨持久连接的popen句柄

Php 跨持久连接的popen句柄,php,popen,Php,Popen,我试图使用popen执行一个命令,然后通过AJAX打印其进度。我发现这非常有用,并使AJAX脚本交换工作正常。问题是,每次从ajax异步访问test时,popen上的句柄都会重复。如果shell只运行一次,则句柄不再有效。我不知道如何使$handle成为持久的accross请求 public function test() { chdir('my dir'); $handle = popen('make install 2>&1','r'); e

我试图使用
popen
执行一个命令,然后通过AJAX打印其进度。我发现这非常有用,并使AJAX脚本交换工作正常。问题是,每次从ajax异步访问
test
时,
popen
上的句柄都会重复。如果shell只运行一次,则句柄不再有效。我不知道如何使$handle成为持久的accross请求

public function test()
{
      chdir('my dir');
      $handle = popen('make install 2>&1','r');
      echo fread($handle, 2096);


}

一次只会有一个用户请求此功能…仅用于管理后端。AJAX的输出总是“在src中进行安装”

你不能那样做。您必须在后台运行“make install”过程(例如,通过
exec()
),并将其输出重定向到一个文件/管道,以便在执行AJAX请求时读取该文件/管道。

您需要保持打开的不是
popen
句柄,而是PHP脚本本身。你有没有这样做?