Php 调用外部进程会导致永远不会返回响应

Php 调用外部进程会导致永远不会返回响应,php,docker,Php,Docker,我有一个PHP函数,它调用外部Python脚本并捕获结果。代码按预期工作,我从这个函数收到响应,没有任何问题 Python 3.7.3脚本对数据库进行PyODBC调用,将数据读回Pandas,并将结果作为JSON返回 我使用官方的PHP:7-apachedocker映像运行php7.4.10 function shell_exec($command) { $proc = proc_open($command,array(1 => array('pipe','w'),2 =>

我有一个PHP函数,它调用外部Python脚本并捕获结果。代码按预期工作,我从这个函数收到响应,没有任何问题

Python 3.7.3脚本对数据库进行PyODBC调用,将数据读回Pandas,并将结果作为JSON返回

我使用官方的
PHP:7-apache
docker映像运行php7.4.10

function shell_exec($command) {
    $proc = proc_open($command,array(1 => array('pipe','w'),2 => array('pipe','w'),),$pipes);
    $stdout = stream_get_contents($pipes[1]);
    fclose($pipes[1]);
    $stderr = stream_get_contents($pipes[2]);
    fclose($pipes[2]);
    proc_close($proc);
    return($stdout);
}
但是,使用此函数的用户请求的任何页面都不会返回给用户。我的意思是,如果用户请求
page.php
,那么整个脚本都会运行(我可以使用XDebug进行验证),但是在调用
exit之后用户浏览器就像在等待更多数据一样挂起。我用
curl
测试了相同的场景,它也只是挂起等待数据

如果我删除了这个调用,那么就没有挂起,并且任何没有调用这个函数的页面也会返回良好的结果

从命令行调用Python脚本不会显示任何奇怪的结果;正如前面提到的,我在调试时看到的结果看起来100%正确

是什么导致我的响应挂起,我可以如何解决/排除此问题