Linux — PHP exec mocp команда

Я хочу воспроизводить музыку через PHP на моем Raspberry Pi с Mocp (музыка на консоли). Эта команда

mocp -S

прекрасно работает в консоли (запускает сервер mocp), но в PHP-функции exec не работает:

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

Это просто возвращает:

Array ( ) 2

В соответствии с этот список Код возврата 2 означает

Неправильное использование встроенных командных оболочек (согласно документации Bash)

Но что конкретно это означает? Команда mocp --help работает как в консоли, так и в PHP exec.
Как я могу запустить mocp с каждым параметром в PHP?

РЕДАКТИРОВАТЬ:
Я только что вошел как «www-data» (пользователь apache) и попытался запустить команды mocp. Я получил это возвращение:

FATAL_ERROR: не удается создать каталог /var/www/.moc

Я скопировал .moc папка пи в www-data (с пользователем «pi»):

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

Теперь мой сценарий сверху дает мне:

Запуск сервера … Массив ([0] => Запуск сервера … [1] => Запуск сервера …) 2

Но это все равно не работает. В консоли www-data mocp -S теперь дает мне

FATAL_ERROR: невозможно связать () с сокетом

РЕДАКТИРОВАТЬ 2:
Я поменял /var/www/.moc, Если я попробую mocp -SЯ понял

Запуск сервера …
Пробую Джек …
Попытка ALSA …
ALSA lib confmisc.c: 768: (parse_card) не может найти карту ‘0’
ALSA lib conf.c: 4241: (_ snd_config_evaluate) функция snd_func_card_driver возвратила ошибку: Datei oder Verzeichnis nicht gefunden
ALSA lib confmisc.c: 392: (snd_func_concat) ошибка при оценке строк
ALSA lib conf.c: 4241: (_ snd_config_evaluate) функция snd_func_concat вернула ошибку: дата и время проверки не найдены
ALSA lib confmisc.c: 1251: (snd_func_refer) ошибка при оценке имени
ALSA lib conf.c: 4241: (_ snd_config_evaluate) функция snd_func_refer вернула ошибку: дата и время проверки не найдены
ALSA lib conf.c: 4720: (snd_config_expand) Ошибка оценки: Datei oder Verzeichnis nicht gefunden
ALSA lib pcm.c: 2217: (snd_pcm_open_noupdate) Неизвестный PCM по умолчанию
Пытаясь OSS …
FATAL_ERROR: Нет действующего звукового драйвера!
FATAL_ERROR: сервер завершен!

4

Решение

Похоже, что пользователь www-data не имеет прав доступа к вашему аудиоустройству.
Я верю, что выполнение этого должно помочь:

sudo usermod -a -G audio www-data
2

Другие решения

Мое полное решение проблемы:
Я начал с новой установки raspbian и запустил эти команды:
sudo raspi-config
->Expand Filesystem
->Finish, reboot
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apache2 php5 libapache2-mod-php5
sudo groupadd www-data
sudo usermod -g www-data www-data
sudo apt-get install moc
sudo usermod -a -G audio www-data
mocp -S
sudo cp -R /home/pi/.moc /var/www/.moc
sudo chown www-data /var/www/.moc/
sudo chmod -R a+rwxst .moc/

В конечном итоге пользователь «www-data» может запустить mocp.

1

По вопросам рекламы [email protected]