我有一个独特的情况。我正在尝试从名为Diascope的PHP脚本运行视频编码程序,该脚本依赖于ImageMagick提供的“convert”命令。我有一个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用于文档和更新。
错误:找不到可执行程序:转换请参阅 发行说明中对diascope的要求。
当我运行shell_exec("whoami");
时,它会打印“nobody”
那么为什么我可以自己运行转换器,但“diascope”进程似乎无法使用它?我已经尝试进入/usr/local/bin/convert
并将其调整为777,但它似乎没有任何影响,我还能在这里尝试什么?
更新:我应该补充一点,当我尝试在终端上以root身份运行diascope -clean audio.txt
时,它会像它应该创建audio.flv文件一样,我似乎无法sudo su nobody
它返回This account is currently not available.
答案 0 :(得分:4)
PHP与apache运行的用户相同,通常是www-data或nobody。我相信你可以使用suPHP + apache来改变PHP运行的用户。