Php Convert在shell中执行,但在shell_exec中不执行

Php Convert在shell中执行,但在shell_exec中不执行,php,permission-denied,imagemagick-convert,Php,Permission Denied,Imagemagick Convert,似乎有许多相关的问题,在仔细研究了其中的许多问题之后,我似乎仍然找不到解决办法 在shell中执行以下操作可以实现以下目的: /usr/local/bin/convert-trim-density 300/Users/fullpath/file.pdf/Users/fullpath/file.png 但在php文件中执行以下操作: <?php putenv("PATH=/usr/local/bin:/usr/bin:/bin"); echo shell_exec('

似乎有许多相关的问题,在仔细研究了其中的许多问题之后,我似乎仍然找不到解决办法

在shell中执行以下操作可以实现以下目的:

/usr/local/bin/convert-trim-density 300/Users/fullpath/file.pdf/Users/fullpath/file.png

但在php文件中执行以下操作:

    <?php
    putenv("PATH=/usr/local/bin:/usr/bin:/bin");
    echo shell_exec('/usr/local/bin/convert -trim -density 300 /Users/fullpath/file.pdf /Users/fullpath/file.png  2>&1');
    ?>

没有。显示的错误消息为:

转换:无法创建临时文件 `/Users/fullpath/file.pdf':权限被拒绝

我的规格是: 麦克:雪豹 通过本地主机运行Apache


显然这是一个权限问题,但是在哪里呢?文件本身和相关文件夹都是777。

这似乎很奇怪,但您能尝试设置一个特定的临时文件夹吗

试试这段代码,我刚刚添加了一个新的环境变量,将临时目录设置为/tmp(您可以尝试其他位置):


很抱歉,我的chrome浏览器崩溃了。错误实际上是相同的,
UnableToCreateTemporaryFile
<?php
putenv("PATH=/usr/local/bin:/usr/bin:/bin");
putenv("MAGICK_TEMPDIR=/tmp");
echo shell_exec('/usr/local/bin/convert -trim -density 300 /Users/fullpath/file.pdf /Users/fullpath/file.png  2>&1');
?>