2014-01-21 6 views
0

Я работаю над мобильным приложением, которое позволяет пользователям загружать видео, при загрузке видео преобразуются в формат mp4, для этого я использую сценарий оболочки, сценарий отлично работает наш последний сервер, но мы переключили наш сервер, и теперь он перестает работать, файлы журнала apache печатаются.Centos: среда TERM переменная не установлена ​​

[Tue Jan 21 00:57:37.003944 2014] [:error] TERM environment variable not set. 
[Tue Jan 21 00:57:37.148531 2014] [:error] ./script.sh: line 3: ffmpeg: command not found 
[Tue Jan 21 00:57:37.148794 2014] [:error] script.sh: line 4: ffmpeg: command not found 

Содержание script.sh являются

#!/bin/bash -p 
clear 
ffmpeg -i $filename -strict experimental -ar 22050 converted.mp4<br> 
ffmpeg -itsoffset -1 -i converted.mp4 -vframes 25 -filter:v scale="min(500\, iw):-1" thumbnail.png 

Я зову форму PHP скрипт с использованием

shell_exec("script.sh 52567afa374c61381399290.mp4"); 

Любая помощь будет принята с благодарностью.

Благодаря

+0

Пара вещей. Почему вы делаете «clear» (откуда приходит ошибка «TERM») и что вы получаете, если вы действительно заходите на сервер и запускаете 'type ffmpeg' (предполагая, что он не может существовать или не найден ни в каком пути, который он использует) ? Кроме того, «$ filename» установлен на что угодно? – BroSlow

+0

ffmpeg установлен и правильно настроен, когда я запускаю те же команды из SSH, команды выполняются успешно, ясность - это просто очистить консоль до ее выполнения, я попробую удалить ее и запустить снова. – TilalHusain

+1

Наверное, ничего не изменит, если только ошибка TERM связана с очисткой. Также попробуйте использовать полный путь к 'ffmpeg', используя' shell_exec («bash script.sh 52567afa374c61381399290.mp4»); 'и я думаю, вам нужно переключить' $ filename' на '' $ 1 '' (хотя я бы несколько устал от инъекции здесь) – BroSlow

ответ

0

Ошибки были

  • clear нужен терминал для обработки таким образом вызывает TERM ошибки (Баш -p должен вообще это исправить, но clear это на самом деле не нужно здесь в любом случае)
  • Путь неверно установлен в течение shell_exec, поэтому ffmpeg необходимо , чтобы иметь полный путь, указанный так, чтобы bash его мог найти.
Смежные вопросы