Я искал помощь и пробовал все на этот поток, но все еще не может заставить его работать. Я пытаюсь запустить утилиту командной строки sox (Sound eXchange) из моего PHP-скрипта с помощью shell_exec(). Мне нужно объединить два аудиофайла, оба из которых находятся в том же каталоге, что и PHP-скрипт (т.е. доступны для apache).
Вот путаница:
- Некоторые команды sox прекрасно работают с помощью 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');
Может кто-нибудь пролить некоторый свет на это? Что мне не хватает? Спасибо.