我正在尝试使用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'
该脚本中的任何其他命令都可以正确执行。 有人可以给我一些建议吗?
答案 0 :(得分:0)
我已经找到了解决方案。
解决方案是删除&#34; sudo -u www-data&#34;部分来自shell脚本。 现在它只包含:
#!/bin/sh
/usr/bin/play '/var/www/ding.mp3'
我把它留在这里,所以也许有人会发现它在将来很有用。