我正在开发一个需要远程调用另一台服务器的脚本。我通过执行调用我的脚本:
(host server) shell_exec("php /dir/script/script.php > /dev/null 2>/dev/null &");
依次执行
(host server) ssh2_exec($con, "php /remote/server/dir/script.php");
我的脚本“script.php”使用标准输出缓冲区来返回其值(当它执行 shell 命令时),然后它捕获标准输出,将其读回,然后对数据执行一些工作。
我的问题是,当我在远程服务器上本地运行 script.php 时,它可以工作,因为它可以捕获标准输出,但是远程运行脚本失败,因为没有记录输出。
如何在远程服务器上捕获远程脚本的输出,以允许我的 script.php 执行。
谢谢您的帮助!
编辑:
我执行 ssh2_exec 的代码如下:
$stream = ssh2_exec($con, "php /remote/server/dir/script.php" );
stream_set_blocking($stream, true);
$stream_out = ssh2_fetch_stream($stream, SSH2_STREAM_STDIO);
echo stream_get_contents($stream_out);