У меня немного уникальная ситуация. Я пытаюсь запустить программу кодирования видео из скрипта 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
и chmoding его до 777, но это, похоже, не имело никакого эффекта, что еще я мог попробовать здесь?
UPDATE: Вероятно, я должен добавить, что когда я пытаюсь запустить diascope -clean audio.txt
как root на терминале, он создает файл audio.flv, как и должен, также я не могу показаться, что он ничего не возвращает. This account is currently not available.
PHP работает как тот же пользователь, что и apache, обычно это www-data или никто. Я считаю, вы можете использовать suPHP + apache для изменения пользователя, которому работает PHP.