我有一个独特的情况。我正在尝试从名为Diascope的PHP脚本运行视频编码程序,该脚本依赖于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");时,它会显示“ nobody”

那么,为什么我可以自己运行convert,但是“ diascope”过程似乎无法利用它呢?我曾尝试进入/usr/local/bin/convert并将其更改为777,但似乎没有任何效果,我还能在这里尝试什么?

更新:我可能应该补充一点,当我尝试在终端上以root身份运行diascope -clean audio.txt时,它会像应有的那样创建audio.flv文件,而且我似乎也看不到sudo su nobody它会返回This account is currently not available.

最佳答案

PHP以与apache相同的用户身份运行,该用户通常是www-data或没有用户。我相信您可以使用suPHP + apache更改运行PHP的用户。

10-08 05:04