Php 我可以用手刹从本地web应用程序中翻录DVD吗?

Php 我可以用手刹从本地web应用程序中翻录DVD吗?,php,command-line-interface,Php,Command Line Interface,我正在构建一个将在我的机器上运行的PHP web应用程序,其目的之一是使用exec()或类似的调用调用HandBrakeCLI。如果我运行命令 HandBrakeCLI -i path_to_dvd_drive -o output_file --preset preset_name 从外壳上看,它工作得很好。但是,当我将完全相同的命令放在exec()php函数(或类似函数)中时,除了返回状态0之外,它不工作,也不返回任何内容。没有错误,没有别的 这只是一个简单的权限问题,我没有看到,因为没有错

我正在构建一个将在我的机器上运行的PHP web应用程序,其目的之一是使用exec()或类似的调用调用HandBrakeCLI。如果我运行命令

HandBrakeCLI -i path_to_dvd_drive -o output_file --preset preset_name
从外壳上看,它工作得很好。但是,当我将完全相同的命令放在exec()php函数(或类似函数)中时,除了返回状态0之外,它不工作,也不返回任何内容。没有错误,没有别的


这只是一个简单的权限问题,我没有看到,因为没有错误被吐出来?还是我遗漏了什么?

在执行exec()时,PHP调用的任何shell的路径中都有手刹吗?运行PHP/webserver的帐户是否有权访问handbrak.exe所在的目录,并有权执行handbrak.exe?Web服务器帐户是否具有访问dvd驱动器等的权限


要检查的内容很多,而且没有更好的诊断信息,这是您在这里能够获得的最佳结果。

要进行调试,请尝试从控制台运行该命令,但用户PHP的运行方式是。下面是一些如何找出用户的指针


然后使用以Apache用户身份运行该命令。您可能会从中获得更多有用的信息。

尝试使用绝对路径执行脚本(在终端中键入
which HandBrakeCLI
以查找它),并将
2>&1
附加到命令末尾,如:

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


这样,如果命令向stderr输出任何内容,您将看到它。

这是一台Ubuntu机器。从Ubuntu软件中心以及PHP上安装HandBrakeCLI。我有点希望我至少能找到一个方向,我可以找到一些阻止它运行的问题日志。太好了!这很有帮助。原来错误是无法访问DVD驱动器。我可以从那里开始。