1

我在我的应用程序中开发了一项功能,它可以根据用户获取一些图像并呈现为一个 pdf。此功能在我的舞台服务器中运行良好,但这在生产中显示“服务器错误”。

我验证了 apache 的错误日志,发现以下错误

libpng warning: Ignoring attempt to set cHRM RGB triangle with zero area

Corrupt JPEG data: 234 extraneous bytes before marker 0xd9

该应用程序是在 cakephp 上创建的,用于呈现 pdf 的库是 tcpdg,登台和生产服务器在 ubuntu 上。我咨询了一些前辈,他们都说这是GD问题。

舞台服务器环境

PHP 5.3.3-0.dotdeb.1 with Suhosin-Patch (cli) (built: Oct  1 2010 08:49:29)
Copyright (c) 1997-2009 The PHP Group

生产服务器上的环境

PHP 5.3.2-1ubuntu4.18 with Suhosin-Patch (cli) (built: Sep 12 2012 19:12:47)
Copyright (c) 1997-2009 The PHP Group

请向我推荐任何无风险的解决方案。

4

2 回答 2

1

由于任何原因,图像结束后有一些垃圾字节阻止它工作。

您可以解决问题,在您的图像字节中找到“\xFF\xD9”,它代表 EOI(图像结束),并且无论您在哪里找到它,都将其后面的字节切掉。希望这会奏效。

于 2012-11-29T19:18:57.373 回答
1

在诊断这个问题。我注意到ImageMagick 模块没有加载到我们的登台服务器上。这就是它在登台服务器上工作的原因。我们从生产服务器禁用它并且它工作。这引起了与GD的一些冲突。

我注释掉了以下扩展名

extension=imagick.so

无论如何谢谢

于 2012-12-04T11:38:00.230 回答