繁体   English   中英

对来自 php 的命名管道运行 shell 命令

[英]run shell command over named pipes from php

我在 php 中有一个适用于 docker 的应用程序。 我想通过命名管道从 php 发送命令。 如果我 go 从控制台到容器并运行此命令,那么它可以工作,但是从 php 代码没有任何反应。

命令示例:

system('echo "mkdir -p /some_new_dir" > hostpipe/mypipe');
// or another test
system('cat /application/file_with_command > /application/hostpipe/mypipe');

我尝试使用 exec/shell_exec/system 或 Symfony 进程,但没有帮助。 偶然发现了利用fopen的信息,但我不确定如何使用它。 我像这样打盘,但没有成功:

$out = fopen(base_path("hostpipe/mypipe"),"w");
fwrite($out,"mkdir -p /some_new_dir");
fclose($out);

权限看起来不错,因为我制作了 chmod 并且例如它有效:

system('mkdir -p ' . base_path("/some_new_dir"))

PHP 进程所有者无权创建命名的 pipe 可能是权限问题。 我将使用systemexec而不是shell_exec ,以便您可以检查命令的 output。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM