Запуск команды Linux из PHP - PullRequest
2 голосов
/ 03 января 2012

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

convert image.jpg image.png

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

diascope -clean audio.txt

И я вижу, что Diascope загружает свойство, потому что печатает «Diascope 0.2.1»:

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

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

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

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

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

1 Ответ

4 голосов
/ 03 января 2012

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

...