请忽略这个问题 - 我发现这里描述的问题不是真正的问题。感谢那些试图提供帮助的人。问题是特定于gmagick的。不是一般的 php 问题。
我在PHP版本5.6.40-6 + ubuntu18.04.1 + deb.sury.org + 3上有这个简单的代码
<?php
header("Content-type: image/png");
$base_image = new Gmagick();
$base_image->newImage(3, 3, "#555555");
$base_image->setImageFormat('png');
$x = $base_image->getImage();
echo $x;
?>
它在 ubuntu 16 php 5.6 服务器上运行良好(发布 3x3 图像(。我使用相同的堆栈从头开始创建了一个新的 Ubuntu 18.04 服务器(详细信息如下(,但它在 echo 语句上崩溃。
错误日志显示:[周四 4 月 11 日 11:35:48.110542 2019] [核心:通知] [PID 9875]AH00051:子PID 10298退出信号分段错误 (11(,可能的核心转储在/etc/apache2 中
在表示图像的二进制字符串的回显中,什么会导致这种失败?
在此处查看堆栈详细信息https://www.awesomescreenshot.com/image/3968080/0606779cd806f2d6a6e02828dd643dfd
我指的是这个文档。
所以var_dump($x);
应该给你一个适当的解决方案,因为它是对象而不是字符串。
返回具有当前图像序列的新 Gmagick 对象。
这是一个 Imagick 对象。您可以将其转换为字符串,例如:
$x::getImageBlob()
见:https://www.php.net/manual/en/imagick.getimageblob.php