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

问题描述

我有一个在 docker 上运行的 php 应用程序。我想通过命名管道从 php 发送命令。如果我从控制台转到容器并运行此命令,那么它可以工作,但是从 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"))

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)