imagick 崩溃与 PHP 5.3

Posted

技术标签:

【中文标题】imagick 崩溃与 PHP 5.3【英文标题】:imagick crash with PHP 5.3 【发布时间】:2011-12-22 18:45:33 【问题描述】:

我收到此错误:

在加载页面时重置了与服务器的连接。

这仅在我尝试使用 ImageMagick 加载图像时发生。

<?php 
header('Content-type: text/html');
$image = 'some_image.jpg';

/*** a new imagick object ***/
$im = new Imagick();

/*** ping the image ***/
$im->pingImage($image);

/*** read the image into the object ***/
$im->readImage( $image );

/**** convert to png ***/
$im->setImageFormat( "png" );

/*** write image to disk ***/
$im->writeImage( '/tmp/new.png' );

echo 'Image Converted';  
?>



vertrigo serv
php 5.3.8
php_imagick_ts.dll

这里显然同样的问题: http://valokuva.org/?page_id=50

我可以加载它,phpinfo 显示 imagick 信息,但是在尝试读取图像时 Apache 崩溃了。

对这个问题有任何想法吗?

【问题讨论】:

你的日志有没有提供线索? Imagick 很难在 32/64 Windows 上工作。 5.3+几乎不可能工作。 Imagick 正是我从 Windows 转向开发的原因。这和一个仅在 Windows 中发生的可笑的 DateTime 错误。 您从哪里获得 php_imagick_ts.dll 文件?它是否与 VertrigoServ 一起提供? 没有。从valokuva.org/builds 下载并复制到 ext 文件夹。 @Layke,我认为您需要类似date_default_timezone_set('Europe/Lisbon'); $tz = date_default_timezone_get(); 这些是 VC9 版本。您还需要验证您的 PHP 二进制文件是否为 VC9。好老的phpinfo() 就足够了。 【参考方案1】:

有类似问题:Imagick constructor crashes PHP/CGI

我今天也遇到了同样的问题。您必须安装不高于 6.6.4.0 的 Image Magick 版本 - 下一个版本是使用 VC10 制作的,这似乎与 Apache VC9 + PHP5.3.x VC9 不兼容。

对此有一些cmets:http://valokuva.org/?p=161#comment-20707

您可以在此处获取 Image Magick 的旧版本:http://image_magick.veidrodis.com/image_magick/binaries/

并且记得在安装 Image Magick 后重启 windows

【讨论】:

+1 这在带有 xampp 的 Windows 7 上对我有用:image_magick.veidrodis.com/image_magick/binaries/… 和 valokuva.org/builds/ext/vc9/ts/imagick/2011-04-25_1849/…(将其重命名为 php_imagick.dll 并将其添加到 /xampp/php/ext) 提供的旧版本链接不再存在。有人帮忙吗?我不知道在哪里可以找到 在那里找到了一些东西:mirror.imagemagick.org/pub/ImageMagick/legacy 试一试,告诉我们它是否有效 如果您正在寻找旧版本的镜像,这里有一个:ftp.sunet.se/pub/multimedia/graphics/ImageMagick/binaries【参考方案2】:

如果使用 PHP "new Imagick("$imagebath")",我刚刚在我的新服务器中遇到了同样的错误

解决方法是:

set "php.ini" "memory_limit = 256M"(或者更多,原来是128,不够用),错误日志:“Out of memory in UB xxx: OOM kill process x (httpd)...” 所以请求已重置到浏览器。

【讨论】:

【参考方案3】:

在 PHP 5 中,该文件必须是 php5.ini 在 php5.ini 中添加这些行

post_max_size = 48M
file_uploads = On
upload_max_filesize = 192M

您可以将尺寸设置为您想要的任何尺寸。

【讨论】:

以上是关于imagick 崩溃与 PHP 5.3的主要内容,如果未能解决你的问题,请参考以下文章

php_imagick是怎么实现复古效果的呢?

使用imagick PHP在png图像周围添加边框

添加php模块 imagick

WP_Image_Editor_Imagick 漏洞临时解决方法

Laravel 使用 Intervention/image 配置和修改驱动 imagick

不知何故,子进程在调用Imagick::newImage之后退出