php exec()返回空值

时间:2013-09-14 01:48:40

标签: php exec mogrify

目前我的目标是使用PHP exec()的输出但获取空值。我使用firephp(firebug扩展)日志记录,无法弄清楚为什么它是空的。

完整代码:https://github.com/MattMcFarland/ninja-forms-uploads-custom/blob/dev/uploads-custom.php

此处表格: http://www.hvac-hacks.com/?page_id=1383&preview=true&form_id=96

            exec('mogrify -auto-orient -verbose -format jpg '.$dir."/".$user_file_name,$ouput);
            fb($output);
            curl_exec('mogrify -auto-orient -verbose -format jpg '.$dir."/".$user_file_name,$output);
            fb($output);
            $output = shell_exec('mogrify -auto-orient -verbose -format jpg '.$dir."/".$user_file_name);
            fb($output);

目前,我正在使用的每个exec方法的控制台显示为空。真的不知道该怎么做,我完全失去了。

控制台正在运行,因为它显示了其他fb();内容。 exec命令显示一个空行,前面有数字3,表示空返回3次。

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

如果找不到您尝试运行的命令,

exec将为空。 您需要通过使用putenv告诉php它可以在哪里找到mogrify。 在我的情况下,mogrify的路径是/ opt / local / bin。因此,以下代码可以使用,您只需要为您的环境使用正确的路径。

putenv("PATH=/opt/local/bin");
exec('mogrify -auto-orient -verbose -format jpg '.$dir."/".$user_file_name,$ouput);
fb($output);
curl_exec('mogrify -auto-orient -verbose -format jpg '.$dir."/".$user_file_name,$output);
fb($output);
$output = shell_exec('mogrify -auto-orient -verbose -format jpg '.$dir."/".$user_file_name);
fb($output);

我希望有所帮助。

答案 1 :(得分:2)

问题是权限问题。用户不允许使用BASH。

对于apache用户,必须在/ etc / passwd中将bin / false更改为bin / bash。

事后看来,最好只添加bin / mogrify