使用PHP在服务器上播放音频

时间:2017-10-26 16:11:40

标签: php shell nginx audio

我正在尝试使用PHP在有人访问我的网页时播放声音 ON SERVER SIDE 。 它在Nginx / Php5(raspberry pi)上运行。

这就是我尝试这样做的方式:

我执行了命令:

sudo usermod -aG audio www-data

php文件:

<?php
$audio = shell_exec('sh play.sh');
echo $audio;
?>

但它没有任何结果。

跑步&#39; id&#39;具有相同方法结果的命令:

uid=33(www-data) gid=33(www-data) groups=33(www-data),29(audio),44(video)

我不知道它的相关性,但是:

ls -lah /dev/snd

drwxr-xr-x   3 root root      160 Oct 26 17:22 .
drwxr-xr-x  15 root root     3.5K Oct 26 17:22 ..
drwxr-xr-x   2 root root       60 Oct 26 17:22 by-path
crw-rw----+  1 root audio 116,  0 Oct 26 17:22 controlC0
crw-rw----+  1 root audio 116, 16 Oct 26 17:22 pcmC0D0p
crw-rw----+  1 root audio 116, 17 Oct 26 17:22 pcmC0D1p
crw-rw----+  1 root audio 116,  1 Oct 26 17:22 seq
crw-rw----+  1 root audio 116, 33 Oct 26 17:22 timer

执行以下命令正确播放文件:

sudo -u www-data play ding.mp3

但使用以下内容:

sudo -u www-data sh play.sh

结果:

Sorry, user www-data is not allowed to execute '/usr/bin/play /var/www/ding.mp3' as www-data on raspberrypi.

该脚本包含以下内容:

#!/bin/sh
sudo -u www-data /usr/bin/play '/var/www/ding.mp3'

该脚本中的任何其他命令都可以正确执行。 有人可以给我一些建议吗?

1 个答案:

答案 0 :(得分:0)

我已经找到了解决方案。

解决方案是删除&#34; sudo -u www-data&#34;部分来自shell脚本。 现在它只包含:

#!/bin/sh
/usr/bin/play '/var/www/ding.mp3'

我把它留在这里,所以也许有人会发现它在将来很有用。