从PHP运行Linux命令

我有一个独特的情况。 我试图从一个名为Diascope的PHP脚本运行一个video编码程序,该脚本依赖ImageMagick提供的“convert”命令。 我有一个bash脚本执行一个非常简单的转换,然后运行名为Diascope的应用程序。 这是转换代码,下面的工作,它创build新的文件

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以获取文档和更新。

错误:未find可执行程序:convert请参阅发行说明中的​​diascope要求。

当我运行shell_exec("whoami"); 它打印“无人”

那么为什么我可以自行运行转换,但是“diascope”进程似乎无法使用它? 我已经尝试进入/usr/local/bin/convert ,并将其chmoding到777,但它似乎没有任何效果,我还能在这里尝试?

更新:我应该补充一点,当我尝试在terminal上以root身份运行diascope -clean audio.txt ,它会创buildaudio.flv文件,就像它应该一样,我似乎也无法sudo su nobody它会返回This account is currently not available.

PHP以与apache相同的用户身份运行,通常是www-data或nobody。 我相信你可以使用suPHP + apache来改变运行PHP的用户。