Итого * nix n00b, поэтому заранее извиняюсь. Я установил ffmpeg через homebrew, теперь я хочу вызвать его из скрипта PHP с помощью shell_exec() , например, ffmpeg -v . Но ничего не происходит. Из Терминала все работает нормально.

Apache выполняется как _www , поэтому я решил, что у него не будет достаточных разрешений, чтобы найти что-либо внутри /usr/local/bin . Поэтому я поместил символическую ссылку на двоичный файл ffmpeg в /usr/bin . Ничего такого. Я могу запустить which ffmpeg но это дает мне /usr/bin/ffmpeg . Вызов ffmpeg -version ничего не выдает.

Я проверил, что разрешения для ffmpeg установлены на 755, но это не имело никакого эффекта. Есть идеи?

3 ответа3

0

Первым шагом будет запуск команды от имени _www-пользователя путем вызова sudo -u _www -H [команда]

Это запустит [command] как _www-User, чтобы вы могли видеть, что происходит на терминале.

Но может быть более простое решение. Пользователь _www может просто не иметь /usr /local /bin в своей переменной PATH. Поэтому вам придется вызывать /usr /local /bin /ffmpeg в вашем скрипте вместо ffmpeg, и все работает нормально.

0

Помните, что ffmpeg не выводит на стандартный stdout . Если вы вызываете его, вам нужно либо stderr , либо перенаправить его.

Итак, запустите:

ffmpeg -v 2&>1
0

Возможно, вы захотите использовать библиотеку PHP-FFmpeg для выполнения задач ffmpeg.

Это доступно здесь: Библиотека PHP-FFMpeg

Надеюсь, что это полезно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .