다음 코드는 "php test.php"(PHP 5)를 실행중인 Windows 7의 명령 프롬프트에서 실행될 때 작동합니다. 출력은 단순히 "test"입니다. 하지만 php (v5)가 localhost apache 서버 (v2.2)에서 실행되는 브라우저에서 실행되면 작동하지 않습니다. 즉, 출력이 없습니다 (스트레이트 에코, 플러시 및 AJAX 메소드 사용). 프로세스가 성공적으로 시작됩니다 (proc_get_status를 사용하여 확인 됨). 은에 대한 권한 문제도 괜찮습니다. 파이프와 관련이있는 것 같습니다. 어떤 아이디어? 내가 누락 된 잘 알려진 것이 있습니까?PHP proc_open pipe anomaly (Win7/Apache2.2)
<?php
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w")
);
$process = proc_open("java Test", $descriptorspec, $pipes, null, null,array('bypass_shell'=>true));
fclose($pipes[0]);
echo stream_get_contents($pipes[1]);
fclose($pipes[1]);
proc_close($process);
?>
아마도 그렇습니다. 방금 JSP로 Apache Tomcat에서 동일한 작업으로 다시 구현했습니다. 원래 목표를 달성합니다. 감사. –