вызовите ffmepg из apache php без полного пути

Мне нужен apache / php для распознавания команды ffmpeg без указания полной ванны / usr / local / bin / ffmpeg

вызов ffmpeg из командной строки запускает программу
вызов ffmpeg из php через web не запускает программу
вызов / usr / local / bin / ffmpeg из php через web действительно выполняет программу

Зачем:
PHP-скрипт вызывает youtube-dl (скомпилированную программу) и выполняет ffmpeg внутри

заранее спасибо —
пробовал путь ffmpeg:
какой ffmpeg
/ USR / местные / бен / FFmpeg

echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin#php code for testing:
$output = shell_exec('/usr/local/bin/ffmpeg 2>&1');
echo "shell exec /usr/local/bin/ffmpeg <pre>$output</pre>";
#Response:
ffmpeg version 2.5.3 Copyright #(good)

#Second php code for testing:
$output = shell_exec('ffmpeg 2>&1');
echo "shell exec <pre>$output</pre>";
#Response:
sh: ffmpeg: command not found #(bad)

1

Решение

PHP использует по умолчанию profile выполнять команды с backticks/shell_exec, По-видимому, не включает /usr/local/bin в $PATH, Чтобы исправить проблему, вы можете явно добавить /usr/local/bin на ваш путь по умолчанию:

sudo echo '$PATH=/usr/local/bin:$PATH' > /etc/profile.d/php_needed.sh

В современных системах все содержание /etc/profile.d папка будет включена в профиль.

1

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

Других решений пока нет …

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