PHP进程开放管道异常(Win7/Apache2.2)
当在运行“php test.php”(PHP5)的Windows7中从命令提示符执行时,以下代码可以工作-输出只是“test”。但是,当php(v5)在本地主机apache服务器(v2.2)上运行的任何浏览器上运行时,它都不工作——即没有输出(使用直接回送、刷新和使用AJAX方法)。流程已成功启动(使用proc_get_status进行验证)(对我来说,这意味着权限问题也可以)。似乎和管道有关。有什么想法吗?有什么我不知道的东西吗PHP进程开放管道异常(Win7/Apache2.2),php,apache,windows-7,pipe,proc-open,Php,Apache,Windows 7,Pipe,Proc Open,当在运行“php test.php”(PHP5)的Windows7中从命令提示符执行时,以下代码可以工作-输出只是“test”。但是,当php(v5)在本地主机apache服务器(v2.2)上运行的任何浏览器上运行时,它都不工作——即没有输出(使用直接回送、刷新和使用AJAX方法)。流程已成功启动(使用proc_get_status进行验证)(对我来说,这意味着权限问题也可以)。似乎和管道有关。有什么想法吗?有什么我不知道的东西吗 <?php $descriptorspec = array
<?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);
?>
您的apache服务器可能作为非交互服务的“系统”运行。很多事情都不起作用,可能还有控制台应用程序的管道。此外,您可能会遇到权限问题,因为您的控制台(它工作的地方)具有用户(您的)权限,而派生的控制台具有系统权限
如果您确实需要管道,您可以尝试以用户(而不是系统)的身份运行apache,并配置支持桌面交互的服务。您的apache服务器可能以非交互服务的“系统”运行。很多事情都不起作用,可能还有控制台应用程序的管道。此外,您可能会遇到权限问题,因为您的控制台(它工作的地方)具有用户(您的)权限,而派生的控制台具有系统权限
如果您真的需要管道,您可以尝试以用户(而不是系统)的身份运行apache,并配置支持桌面交互的服务。也许是这样。我刚刚用JSP重新实现了相同的活动(在ApacheTomcat上)。它实现了最初的目标。谢谢,也许是吧。我刚刚用JSP重新实现了相同的活动(在ApacheTomcat上)。它实现了最初的目标。谢谢