0

を使用してコマンドを実行し、popenAJAXを介してその進行状況を出力しようとしています。この投稿は非常に役に立ち、AJAXからスクリプトへの交換が正常に機能するようになりました。問題は、ajaxからの非同期GETが発生するたびにtest、onのハンドルpopenが繰り返されることです。シェルを1回だけ実行すると、ハンドルは無効になります。$handleをリクエスト間で永続的にする方法がわかりません。

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


}

一度にこれを要求するユーザーは1人だけです....管理者のバックエンドでのみ使用されます。AJAXからの出力は常に「Makinginstallinsrc」です。

4

1 に答える 1

2

あなたはそれをすることはできません。'make install'プロセスをバックグラウンドで(たとえば経由でexec())実行し、その出力をAJAXリクエストの実行時に読み取ることができるファイル/パイプにリダイレクトする必要があります。

于 2012-05-09T08:16:47.413 に答える