2013-03-08 4 views
1

다음 코드는 "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); 
?> 

답변

3

아마도 귀하의 apache 서버는 비대화 형 서비스로 "시스템"으로 실행됩니다. 많은 것들이 작동하지 않으며 아마도 콘솔 응용 프로그램 용 파이프 일 수도 있습니다. 또한 생성 된 콘솔에 시스템 권한이있는 동안 콘솔 (작동하는 곳)에 사용자 권한이 있으므로 권한 문제가 발생할 수 있습니다.

파이프가 정말로 필요한 경우 시스템이 아니라 사용자로 아파치를 실행하고 데스크톱 상호 작용을 가능하게하는 서비스를 구성 할 수 있습니다.

+0

아마도 그렇습니다. 방금 JSP로 Apache Tomcat에서 동일한 작업으로 다시 구현했습니다. 원래 목표를 달성합니다. 감사. –

관련 문제