PHP 执行 mocp 命令

标签 php linux apache2 raspbian

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

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 的权限。如果我尝试 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

关于PHP 执行 mocp 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31641670/

相关文章:

php - 如何将 file_get_contents 与相对路径一起使用

php - 在 LAN 上共享您的源代码 (PHP)

php - Linux(Centos7) |我有两个 php.ini 文件

php - 在 Apache 中运行 Django 和 PHP 应用程序

PHP 变量在 Wordpress 头文件和索引文件中不起作用?

php - 热切加载带有子查询连接的关系

Linux, pthreads -- 发送停止条件

linux - 确定文件是否是脚本

php - RasPi上php5与mysql连接错误

c - Axis2/c安装错误