2

我有一点独特的情况。我正在尝试从名为 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

错误:未找到可执行程序:转换请参阅发行说明中对 diascope 的要求。

当我运行shell_exec("whoami");它时,它会打印“nobody”

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

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

4

1 回答 1

4

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

于 2012-01-03T02:01:47.220 回答