Запуск команды 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.
1 answers
PHP работает от имени того же пользователя, что и apache, обычно это www-данные или никто. Я считаю, что вы можете использовать suPHP+apache для изменения пользователя, под которым работает PHP.