目前我的目标是使用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次。
有什么想法吗?
答案 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