如何从(bash)CGI脚本运行命令以在服务器端播放wav声音 ?
答案 0 :(得分:2)
您可以按照nak的描述执行命令行音频播放器,但由于运行Apache的用户的权限,这可能无法正常工作。默认情况下,Apache以www-data:www-data(或apache:apache或www:www在某些发行版上)运行。作为快速修复/测试,您可以将Apache设置为以具有访问计算机上音频设备权限的用户身份运行,方法是修改/etc/apache2/apache2.conf(或/etc/httpd/httpd.conf“)文件拥有:
User USER_THAT_CAN_PLAY_AUDIO
Group USER_THAT_CAN_PLAY_AUDIO
警告:这不安全,并不是永久解决方案!
答案 1 :(得分:0)
我就是这样做的
#!/bin/sh
echo Content-type: text/plain
echo ""
echo "Server is playing sine.wav!"
aplay -q sine.wav
答案 2 :(得分:0)
我偶然发现了这个老问题,看看如何解决同样的问题:当有人发出特定请求时,让我的个人Apache网络服务器警告我(在我的情况下,无需运行IM即可进行聊天呼叫)。 / p>
以下解决方案是我在Slackware 14.1上使用的:根据您的发行版 YMMV 。
启动specify
添加行visudo
(TheUserRunningApache是Apache使用的用户名)
在PHP页面中,您想播放声音添加以下行:TheUserRunningApache ALL=(ALL) NOPASSWD: /usr/bin/play
如果您不想将Apache的访问权限授予system ("sudo /usr/bin/play SOUND.WAV");
文件夹,即使仅限于/usr/bin
,您也可以复制play
可执行文件(用于运行的程序) sox
)其他地方,但您必须相应地修改上面的最后两条说明。