imagemagick无法加载远程图像

我有一个PHP脚本,下载,重新调整和存储一个图像使用以下命令:

exec('convert -sample 100x100 http://img.zgserver.com/php/pic.jpg images/somename.jpg'); 

它一切正常,直到我把它放在一个不同的服务器(这是一个gentoo,如果这有什么区别,显然转换不会抓住远程图像,如果我喂它像上面的url它返回
convert: missing an image filename 'images/somename.jpg' @ convert.c/ConvertImageCommand/2822.

我检查了使用标志,但似乎没有任何关系到远程图像…新的服务器是本地机器,我有根访问,所以我几乎可以做任何事情 – 所以我怎么能做到这一点?

另一个可能相关的问题是,PHP的file_get_contents()不会从那里获得远程文件。 也许这是一个防止二进制文件获取远程文件的系统范围设置? 有没有人有过这样的问题? 你是怎么解决的?

谢谢,
马拉

更新:澄清
这个问题(imagemagick)与PHP无关。 这是我的笔记本电脑,可以访问互联网就好了,而且不涉及防火墙。 如果我打开一个shell并input
convert -sample 100x100 http://img.zgserver.com/php/pic.jpg images/somename.jpg
它甚至没有尝试访问互联网的上述错误失败。 另一方面,'wget'以及网页浏览器等工作得很好。 在其他系统上,input到shell中的convert命令没有错误。

请忽略file_get_contents问题,因为我认为上述原因并不相关

首先想到的是权限问题。 检查目标目录的权限。 确保imagemagick实际上可以保存文件。

请记住,从http服务器运行的PHP以不同于从命令行运行的权限运行。

DC

你能够通过HTTP检索其他资源吗?

如果没有,那么服务器可能启用防火墙,防止访问(正如您提到的PHP file_get_contents()函数也会失败)。

如果您能够通过HTTP检索其他资源,那么您试图从中获取图像的服务器可能会因某种原因阻止您访问。

同样重要的是要注意,任何对exec的调用都将像PHP一样运行程序,所以确保用户运行的PHP没有任何权限问题。

相反,直觉上,imagemagick必须编译与XML支持 ,以加载远程图像。 因此,Gentoo用户将需要启用xml useflag。