質問: ''; // エラーコードとか // デプロイ実行 exec('export LANG=ja_JP.UTF-8; /usr/local/bin/php ../deployer.phar deploy', $data, $status); ``` しかしこの`$data`はexecコマンドが終了するまで取得できないようで、 `exec('export LANG=ja_JP.UTF-8; /usr/local/bin/php ../deployer.phar deploy &', $data, $status);` のようにしてもダメでした。 execコマンドは、標準出力は実行終了するまで取得できないのでしょうか。 ご存じの方がいらっしゃいましたらご教示いただけますと幸いです。
回答: > > execコマンドは、標準出力は実行終了するまで取得できないのでしょうか。 > > > はい、そのとおりです。`exec`関数のリファレンスにも、「プログラムが実行を終えるまで PHP はハングしてしまいます。」とサラッと書いてあります。 そしてそもそも論ですが、PHPは1リクエストに1レスポンスという構造で動きますので、「標準出力をリアルタイムで得たい。」みたいな用途には**向いていません**。Socket.ioなど、リアルタイムのやり取りができる別な枠組みを使ったほうがいいでしょう。