gpt4 book ai didi

PHP 执行 mocp 命令

转载 作者:IT王子 更新时间:2023-10-29 01:26:18 27 4
gpt4 key购买 nike

我想通过 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com