我尝试从 php 执行 shell 命令失败。目标是通过互联网(例如我的手机)打开/关闭我的计算机/服务器的音乐播放器。这是我能做的:
我有一个非常简单的文件“play.sh”:
代码:
xdotool key XF86AudioPlay;
echo "switched";
如果我运行它./play.sh,那就可以了(音乐播放器打开/关闭)
然后我有另一个非常简单的 php 文件“play.php”:
代码:
<?php echo shell_exec("./play.sh"); ?>
这两个文件位于我的服务器的主文件夹中,该文件夹是我计算机的一个分区。 (我正在使用 lampp)但是我的电脑正在播放音乐。
但是当我进入 localhost/play.php 时,我可以看到“switched”,它向我显示 sh 文件已被执行,但声音没有关闭。
我刚刚尝试过exec()
, shell_exec()
, passthru()
, system()
, .. 与 ./play.sh 和/opt/lampp/.../play.php
结果完全一样,并且没有错误消息..:/
但这很奇怪,我不确定,但我认为我在计算机端运行的内容与我在服务器端运行的内容不同。我的意思是,这就像声音在虚拟服务器上打开/关闭,但与我的计算机的声音没有链接。这可能是一个解释..但是,如何从互联网/我的服务器在我的计算机上执行脚本..?
有人有想法这样做吗?是apache的配置吗?
Thanks !
编辑 :
这是我解决问题的方法:
xhost + local:www-data
感谢你的回复