Могу ли я копировать DVD-диски из локального веб-приложения с помощью HandBrake? - PullRequest
0 голосов
/ 08 января 2012

Я создаю веб-приложение PHP, которое будет работать на моем компьютере, и одна из его целей - вызвать HandBrakeCLI с помощью exec () или аналогичного вызова.Если я запускаю команду

HandBrakeCLI -i path_to_dvd_drive -o output_file --preset preset_name

из оболочки, она работает нормально.Однако, когда я помещаю точно такую ​​же команду в функцию exec () php (или аналогичную), она не работает и ничего не возвращает, кроме состояния возврата 0. Нет ошибок, ничего больше.

Это просто проблема с разрешениями, которую я не вижу из-за отсутствия выкладываемых ошибок?Или я что-то упускаю?

Ответы [ 3 ]

1 голос
/ 08 января 2012

Для отладки попробуйте запустить команду из консоли, но пользователь PHP запускается как. Здесь - несколько указателей, как узнать, кто такой пользователь.

Затем используйте sudo для запуска команды от имени пользователя Apache. Вы, вероятно, получите более полезную информацию от этого.

1 голос
/ 08 января 2012

попробуйте выполнить ваш скрипт, используя абсолютный путь (введите which HandBrakeCLI в терминале, чтобы найти его) и добавьте 2>&1 в конец команды, например:

exec('HandBrakeCLI -i path_to_dvd_drive -o output_file --preset preset_name 2>&1')

таким образом, если команда выводит что-либо в stderr, вы увидите это.

0 голосов
/ 08 января 2012

Стоит ли ручной тормоз на пути к любой оболочке, которую PHP вызывает, когда выполняет exec ()? Имеет ли учетная запись, под которой работает PHP / webserver, доступ к каталогу, в котором находится handbrak.exe, и имеет ли разрешение на выполнение handbrake.exe? Имеет ли учетная запись веб-сервера разрешения на доступ к DVD-диску и т. Д ...

Много вещей для проверки, и без лучшей диагностической информации, это лучшее из того, что вы сможете получить здесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...