【发布时间】:2012-08-21 18:49:26
【问题描述】:
我正在使用 PHP 的 exec() 来转换使用 ImagicMagick 的 convert 的图像。这是在 CentOS 服务器上运行的。
exec(convert http://www.google.com/images/srpr/logo3w.png.jpg
-resize 640 /home/mysite/public_html/public/img/posts/original/1414_301a4.jpg);
使用exec() 不会导致新图像出现在目标文件夹中。但是,如果我要在 shell 中运行相同的命令,它会完美运行!
我相信这是一个 PATH 问题。如果是这样,如何检查 PHP 使用的路径,以及如何在 PHP 中设置正确的路径?
【问题讨论】:
-
很可能你的目标文件夹不能被任何运行你的 php.ini 文件所写。可能是某种 www 用户。
-
convert是否在 PHP 将启动以运行命令的任何 shell 的路径中?一个简单的echo $PATHexec 会告诉你。 -
哎呀,我在这里省略了引号,它肯定存在于我使用的实际代码中。目录的文件夹权限应该是什么? 777?目前是 755。更改文件夹的所有者/组会有所帮助,还是会搞砸?
-
我在要让 Imagemagick 写入的文件夹上创建了
chmod 777,现在它可以与exec()一起使用。 -
我也有同样的问题,但使用的是 liferay。适用于终端,但不适用于 liferay。
标签: php linux imagemagick centos