PHP exec mocp命令

我想在我的Raspberry Pi上使用Mocp(控制台上的音乐)通过PHP播放音乐.这个命令

mocp -S

在控制台中工作正常(它启动mocp的服务器)但在PHP的exec函数中它不起作用:

<?php
    $ret = exec("mocp -S", $out, $err);
    print_r($ret);
    print_r($out);
    print_r($err);
?>

它只是返回:

Array ( ) 2

根据this list return_var代码2的意思

Misuse of shell builtins (according to Bash documentation)

但究竟是什么意思呢?命令mocp –help在控制台和PHP exec中都有效.
如何在PHP中使用每个参数运行mocp?

编辑:
我刚登录为“www-data”(apache用户)并尝试运行mocp命令.我得到了这个回报:

FATAL_ERROR: Can’t create directory /var/www/.moc

我将Pi的.moc文件夹复制到www-data(用户“pi”):

sudo cp /home/pi/.moc/ /var/www/.moc

现在我的上面的脚本给了我:

Running the server…Array ( [0] => Running the server… [1] => Running the server… ) 2

但它仍然无效.在www-data的控制台中,mocp -S现在给了我

FATAL_ERROR: Can’t bind() to the socket

编辑2:
我更改了/var/www/.moc上的permsions.如果我尝试mocp -S,我会得到这个

Running the server…
Trying JACK…
Trying ALSA…
ALSA lib confmisc.c:768:(parse_card) cannot find card ‘0’
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_card_driver returned error: Datei oder Verzeichnis nicht gefunden
ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_concat returned error: Datei oder Verzeichnis nicht gefunden
ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
ALSA lib conf.c:4241:(_snd_config_evaluate) function snd_func_refer returned error: Datei oder Verzeichnis nicht gefunden
ALSA lib conf.c:4720:(snd_config_expand) Evaluate error: Datei oder Verzeichnis nicht gefunden
ALSA lib pcm.c:2217:(snd_pcm_open_noupdate) Unknown PCM default
Trying OSS…
FATAL_ERROR: No valid sound driver!
FATAL_ERROR: Server exited!

解决方法:

好像www-data用户没有使用音频设备的权限.
我相信执行这应该有帮助:

sudo usermod -a -G audio www-data
上一篇:会跳高的字体插件jquery.beattext.js


下一篇:apache2 – 无法获取PHP5的mcrypt