Я искал помощь и пробовал все на this thread, но все равно не могу сделать эту работу. Я пытаюсь запустить утилиту командной строки sox (Sound eXchange) из моего PHP-скрипта с помощью shell_exec(). Мне нужно объединить два аудиофайла, оба из которых находятся в том же каталоге, что и PHP-скрипт (т. Е. Доступный для apache).Не удается запустить команды sox через PHP shell_exec
Вот путаница:
- Некоторые команды Сох прекрасно работают с использованием shell_exec(). Например, я могу воспроизвести аудиофайл или получить информацию об этом.
- Если я повторяю команду конкатенации (так что я точно знаю, что PHP отправляет в оболочку), а затем скопируйте и вставьте ее в окно оболочки, она работает отлично.
- Мой пользователь apache (_www) имеет полные права на каталог, в котором находится скрипт PHP, а также каталог sox. Я запускал «chown -R _www: _www» и «chmod -R 777» в обоих каталогах.
- Я использую полный путь к исполняемому файлу sox и аудиофайлам.
Так это работает в оболочке:
"/soxpath/sox /filepath/file1.wav /filepath/file2.wav /filepath/combined.wav"
Но это не работает с PHP:
shell_exec('/soxpath/sox /filepath/file1.wav /filepath/file2.wav /filepath/combined.wav');
Может кто-нибудь пролить некоторый свет на это? Что мне не хватает? Благодарю.
Что делает shell_exec() return? –
/soxpath/sox ???? что полный путь или образец .... – Baba
shell_exec() возвращает NULL. И «/ soxpath /» является просто заполнителем фактического полного пути. В моем случае это «/bin/sox-14.4.0/» – brettcito