Запуск команды Linux из PHP


У меня немного уникальная ситуация. Я пытаюсь запустить программу кодирования видео из PHP-скрипта под названием Diascope, который использует команду "конвертировать", предоставляемую ImageMagick. У меня есть скрипт bash, который выполняет действительно простое преобразование, а затем запускает приложение под названием Diascope. Это код преобразования, и следующее действительно работает, он создает новый файл

convert image.jpg image.png

Не показывает ошибок, но затем я запускаю диаскоп вот так

diascope -clean audio.txt

И я вижу, что Diascope загружает свойство, потому что оно выводит "Diascope 0.2.1":

Генератор слайд-шоу Diascope 0.2.1 (ms 2006-2010) См. http://diascope.sf.net для документации и обновлений.

Ошибка: исполняемая программа не найдена: преобразование Пожалуйста, ознакомьтесь с требованиями к diascope в примечаниях к выпуску.

Когда я запускаю shell_exec("whoami");, он выводит "никто"

Так почему я могу запустить преобразование сам по себе, но процесс "диаскоп", похоже, не может его использовать? Я пытался войдя в /usr/local/bin/convert и смоделировав его до 777, но, похоже, это не возымело никакого эффекта, что еще я мог здесь попробовать?

ОБНОВЛЕНИЕ: Я, вероятно, должен добавить, что когда я пытаюсь запустить diascope -clean audio.txt как root на терминале, он создает звук.файл flv, как и должно быть, также я не могу sudo su nobody он возвращает This account is currently not available.

Author: Doug Molineux, 2012-01-03

1 answers

PHP работает от имени того же пользователя, что и apache, обычно это www-данные или никто. Я считаю, что вы можете использовать suPHP+apache для изменения пользователя, под которым работает PHP.

 4
Author: Naddiseo, 2012-01-03 02:01:47