Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP进程开放管道异常(Win7/Apache2.2)_Php_Apache_Windows 7_Pipe_Proc Open - Fatal编程技术网

PHP进程开放管道异常(Win7/Apache2.2)

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 test.php”(PHP5)的Windows7中从命令提示符执行时,以下代码可以工作-输出只是“test”。但是,当php(v5)在本地主机apache服务器(v2.2)上运行的任何浏览器上运行时,它都不工作——即没有输出(使用直接回送、刷新和使用AJAX方法)。流程已成功启动(使用proc_get_status进行验证)(对我来说,这意味着权限问题也可以)。似乎和管道有关。有什么想法吗?有什么我不知道的东西吗

<?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上)。它实现了最初的目标。谢谢